├── code
├── rabbitMqTest
│ ├── .idea
│ │ ├── .name
│ │ ├── encodings.xml
│ │ ├── vcs.xml
│ │ ├── modules.xml
│ │ ├── code.iml
│ │ └── misc.xml
│ ├── package.json
│ ├── send.js
│ ├── receive.js
│ ├── .gitignore
│ ├── rpc_server.js
│ └── rpc_client.js
├── Frontend
│ ├── cliProject
│ │ ├── src
│ │ │ ├── assets
│ │ │ │ ├── .gitkeep
│ │ │ │ └── images
│ │ │ │ │ ├── team.png
│ │ │ │ │ ├── user.png
│ │ │ │ │ ├── dropbox.png
│ │ │ │ │ ├── github.png
│ │ │ │ │ ├── slack.png
│ │ │ │ │ ├── bitbucket.png
│ │ │ │ │ ├── owncloud.png
│ │ │ │ │ ├── fileStorage.png
│ │ │ │ │ └── googleDrive.png
│ │ │ ├── app
│ │ │ │ ├── login
│ │ │ │ │ ├── login.component.scss
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── login.component.js.map
│ │ │ │ │ └── login.component.html
│ │ │ │ ├── join-team
│ │ │ │ │ ├── join-team.component.scss
│ │ │ │ │ ├── join-team.component.ts
│ │ │ │ │ └── join-team.component.html
│ │ │ │ ├── change-team
│ │ │ │ │ ├── change-team.component.scss
│ │ │ │ │ └── change-team.component.html
│ │ │ │ ├── create-team
│ │ │ │ │ ├── create-team.component.scss
│ │ │ │ │ ├── create-team.component.spec.ts
│ │ │ │ │ ├── create-team.component.ts
│ │ │ │ │ └── create-team.component.html
│ │ │ │ ├── _guards
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── auth.guard.js.map
│ │ │ │ │ ├── auth.guard.ts
│ │ │ │ │ └── auth.guard.js
│ │ │ │ ├── auth-settings
│ │ │ │ │ ├── auth-settings.component.scss
│ │ │ │ │ └── auth-settings.component.spec.ts
│ │ │ │ ├── home
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── home.component.html
│ │ │ │ │ ├── home.component.ts
│ │ │ │ │ ├── home.component.js.map
│ │ │ │ │ └── home.component.js
│ │ │ │ ├── register
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── register.component.js.map
│ │ │ │ ├── teamArea
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── teamArea.component.js.map
│ │ │ │ │ ├── teamArea.component.html
│ │ │ │ │ └── teamArea.component.js
│ │ │ │ ├── userArea
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── userArea.component.js.map
│ │ │ │ │ ├── userArea.component.html
│ │ │ │ │ ├── userArea.component.ts
│ │ │ │ │ └── userArea.component.js
│ │ │ │ ├── fileStorage
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── fileStorage.component.js.map
│ │ │ │ ├── serviceSelection
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── serviceSelection.component.css
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── serviceSelection.component.ts
│ │ │ │ │ └── serviceSelection.component.js.map
│ │ │ │ ├── _models
│ │ │ │ │ ├── service.js
│ │ │ │ │ ├── repo.ts
│ │ │ │ │ ├── service.js.map
│ │ │ │ │ ├── service.ts
│ │ │ │ │ ├── fsProvider.ts
│ │ │ │ │ ├── slackChannel.ts
│ │ │ │ │ ├── shareService.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── slackChannelMessage.ts
│ │ │ │ │ ├── fileMetaData.js.map
│ │ │ │ │ ├── serviceAuth.ts
│ │ │ │ │ ├── fileMetaData.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── user.js.map
│ │ │ │ │ ├── fileMetaData.ts
│ │ │ │ │ ├── user.js
│ │ │ │ │ ├── user.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── team.ts
│ │ │ │ │ ├── xhrProgress.ts
│ │ │ │ │ └── app.config.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── abstractFileStorage
│ │ │ │ │ └── index.ts
│ │ │ │ ├── slack
│ │ │ │ │ ├── slack.component.scss
│ │ │ │ │ └── slack.component.spec.ts
│ │ │ │ ├── _directives
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── scrollintoView.directive.ts
│ │ │ │ │ ├── ChangeBgColor.directive.js.map
│ │ │ │ │ └── ChangeBgColor.directive.ts
│ │ │ │ ├── versionControl
│ │ │ │ │ └── index.ts
│ │ │ │ ├── _services
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── active-tab.service.ts
│ │ │ │ │ ├── inform-new-team.service.ts
│ │ │ │ │ ├── fileStorage.service.js.map
│ │ │ │ │ ├── user.service.ts
│ │ │ │ │ └── user.service.js.map
│ │ │ │ ├── app.component.css
│ │ │ │ ├── _animations
│ │ │ │ │ └── animations.ts
│ │ │ │ ├── app.component.ts
│ │ │ │ ├── app.routing.ts
│ │ │ │ ├── _pipes
│ │ │ │ │ └── fileSize.pipe.ts
│ │ │ │ ├── app.component.html
│ │ │ │ └── app.component.spec.ts
│ │ │ ├── environments
│ │ │ │ ├── environment.prod.ts
│ │ │ │ └── environment.ts
│ │ │ ├── favicon.ico
│ │ │ ├── MaterialIcons-Regular.eot
│ │ │ ├── MaterialIcons-Regular.ttf
│ │ │ ├── MaterialIcons-Regular.woff
│ │ │ ├── MaterialIcons-Regular.woff2
│ │ │ ├── typings.d.ts
│ │ │ ├── main.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── index.html
│ │ │ ├── polyfills.ts
│ │ │ ├── test.ts
│ │ │ ├── styles.css
│ │ │ ├── material2-app-theme.scss
│ │ │ └── font.css
│ │ ├── e2e
│ │ │ ├── testFiles
│ │ │ │ └── test.html
│ │ │ ├── globalConfig.ts
│ │ │ ├── helper.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── login
│ │ │ │ ├── login.spec.ts
│ │ │ │ └── login.pageObject.ts
│ │ │ ├── register
│ │ │ │ ├── register.spec.ts
│ │ │ │ └── register.pageObject.ts
│ │ │ └── app.e2e-spec.ts
│ │ ├── .editorconfig
│ │ ├── .gitignore
│ │ ├── protractor.conf.js
│ │ ├── README.md
│ │ ├── karma.conf.js
│ │ └── angular-cli.json
│ └── .gitignore
├── Owncloud
│ ├── communication
│ │ ├── RabbitMq.js
│ │ ├── RpcPublisherType.js
│ │ └── RpcPublisher.js
│ ├── .DS_Store
│ ├── slack.png
│ ├── test.pdf
│ ├── test
│ │ ├── .DS_Store
│ │ └── Vortrag.pptx
│ ├── config
│ │ └── config.json
│ ├── proto
│ │ └── fileTransfer.proto
│ ├── owncloudStart.js
│ ├── .gitignore
│ ├── package.json
│ └── test.js
├── Google
│ ├── test.pdf
│ ├── test5.pdf
│ ├── config
│ │ └── config.json
│ ├── proto
│ │ └── fileTransfer.proto
│ ├── package.json
│ ├── googleStart.js
│ └── .gitignore
├── Slack
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── slackStart.js
│ ├── .gitignore
│ ├── proto
│ │ └── slackMessaging.proto
│ └── test
│ │ └── slackTest.js
├── Bitbucket
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── bitbucketStart.js
│ ├── .gitignore
│ └── proto
│ │ └── versionControl.proto
├── Github
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── githubStart.js
│ ├── .gitignore
│ └── proto
│ │ └── versionControl.proto
├── Dropbox
│ ├── test
│ │ └── test.pdf
│ ├── config
│ │ └── config.json
│ ├── proto
│ │ └── fileTransfer.proto
│ ├── dropboxStart.js
│ ├── package.json
│ └── .gitignore
├── TeamManagement
│ ├── .DS_Store
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── teamManagementStart.js
│ ├── test
│ │ └── dbTest
│ ├── .gitignore
│ ├── proto
│ │ └── teamManagement.proto
│ └── db
│ │ └── models
│ │ └── Team.js
├── SeCoFileStorage
│ ├── Projektplan.pdf
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── seCoFileStorageStart.js
│ ├── db
│ │ └── models
│ │ │ └── TeamStorage.js
│ ├── .gitignore
│ ├── pathParser.js
│ └── proto
│ │ ├── authentication.proto
│ │ └── seCoFileStorage.proto
├── TransferService
│ ├── Projektplan.pdf
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── proto
│ │ ├── fileTransfer.proto
│ │ └── authentication.proto
│ ├── transferServiceStart.js
│ ├── .gitignore
│ └── grpc
│ │ ├── server.js
│ │ └── grpcFileStreamer.js
├── SeCoApi
│ ├── exampleCalls
│ │ └── curl
│ ├── MsgBroker
│ │ ├── MsgBrokerType.js
│ │ └── MsgBroker.js
│ ├── config
│ │ └── config.json
│ ├── utility
│ │ ├── rpcJsonResponseBuilder.js
│ │ ├── headerChecker.js
│ │ ├── paramChecker.js
│ │ └── secoBasicAuth.js
│ ├── .gitignore
│ ├── proto
│ │ ├── authService.proto
│ │ ├── notification.proto
│ │ ├── authentication.proto
│ │ ├── seCoFileStorage.proto
│ │ ├── teamManagement.proto
│ │ ├── versionControl.proto
│ │ └── slackMessaging.proto
│ ├── package.json
│ ├── json
│ │ ├── githubRoutes.json
│ │ ├── bitBucketRoutes.json
│ │ ├── slackRoutes.json
│ │ ├── seCoFileStorage.json
│ │ ├── googleDriveRoutes.json
│ │ └── owncloudRoutes.json
│ ├── cert.pem
│ ├── chain.pem
│ ├── key.pem
│ └── privkey.pem
├── .idea
│ ├── watcherTasks.xml
│ ├── encodings.xml
│ ├── misc.xml
│ ├── vcs.xml
│ ├── typescript-compiler.xml
│ ├── modules.xml
│ ├── code.iml
│ └── jsLibraryMappings.xml
├── NotificationService
│ ├── config
│ │ └── config.json
│ ├── db
│ │ └── models
│ │ │ └── Notification.js
│ ├── package.json
│ ├── notificationServiceStart.js
│ ├── .gitignore
│ └── proto
│ │ └── notification.proto
├── AuthenticationService
│ ├── config
│ │ └── config.json
│ ├── oauth2
│ │ └── services
│ │ │ ├── dropbox.json
│ │ │ ├── slack.json
│ │ │ ├── github.json
│ │ │ ├── bitbucket.json
│ │ │ └── google.json
│ ├── package.json
│ ├── .gitignore
│ ├── proto
│ │ ├── authentication.proto
│ │ └── authService.proto
│ ├── cert.pem
│ ├── chain.pem
│ └── key.pem
├── UserManagement
│ ├── config
│ │ └── config.json
│ ├── package.json
│ ├── userManagementStart.js
│ ├── .gitignore
│ ├── proto
│ │ ├── authService.proto
│ │ └── authentication.proto
│ └── db
│ │ └── models
│ │ └── User.js
├── installNodeModules.sh
├── RestTest
│ ├── package.json
│ ├── .gitignore
│ └── restTest.js
├── JSON
│ └── RPC.JSON
└── connectorDescriptionPrototype.rtf
└── .gitignore
/code/rabbitMqTest/.idea/.name:
--------------------------------------------------------------------------------
1 | code
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/login/login.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/join-team/join-team.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/change-team/change-team.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/create-team/create-team.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_guards/index.ts:
--------------------------------------------------------------------------------
1 | export * from './auth.guard';
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/auth-settings/auth-settings.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/index.ts:
--------------------------------------------------------------------------------
1 | export * from './home.component';
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/login/index.ts:
--------------------------------------------------------------------------------
1 | export * from './login.component';
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/register/index.ts:
--------------------------------------------------------------------------------
1 | export * from './register.component';
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/teamArea/index.ts:
--------------------------------------------------------------------------------
1 | export * from './teamArea.component';
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/index.ts:
--------------------------------------------------------------------------------
1 | export * from './userArea.component';
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/fileStorage/index.ts:
--------------------------------------------------------------------------------
1 | export * from './fileStorage.component';
--------------------------------------------------------------------------------
/code/Owncloud/communication/RabbitMq.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 01.08.2016.
3 | */
4 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/serviceSelection/index.ts:
--------------------------------------------------------------------------------
1 | export * from './serviceSelection.component';
--------------------------------------------------------------------------------
/code/Google/test.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Google/test.pdf
--------------------------------------------------------------------------------
/code/Google/test5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Google/test5.pdf
--------------------------------------------------------------------------------
/code/Slack/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "grpcServerPort" : 50048,
3 | "grpcServerIp" : "localhost"
4 | }
--------------------------------------------------------------------------------
/code/Bitbucket/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "grpcServerPort" : 50071,
3 | "grpcServerIp" : "localhost"
4 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/service.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | //# sourceMappingURL=service.js.map
--------------------------------------------------------------------------------
/code/Github/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "grpcServerPort" : 50056,
3 | "grpcServerIp" : "localhost"
4 | }
--------------------------------------------------------------------------------
/code/Owncloud/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Owncloud/.DS_Store
--------------------------------------------------------------------------------
/code/Owncloud/slack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Owncloud/slack.png
--------------------------------------------------------------------------------
/code/Owncloud/test.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Owncloud/test.pdf
--------------------------------------------------------------------------------
/code/Dropbox/test/test.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Dropbox/test/test.pdf
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/index.ts:
--------------------------------------------------------------------------------
1 | export * from './app.component';
2 | export * from './app.module';
3 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/abstractFileStorage/index.ts:
--------------------------------------------------------------------------------
1 | export * from './abstractFileStorage.component';
2 |
--------------------------------------------------------------------------------
/code/Owncloud/test/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Owncloud/test/.DS_Store
--------------------------------------------------------------------------------
/code/TeamManagement/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/TeamManagement/.DS_Store
--------------------------------------------------------------------------------
/code/Owncloud/test/Vortrag.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Owncloud/test/Vortrag.pptx
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/slack/slack.component.scss:
--------------------------------------------------------------------------------
1 | .scrollable{
2 | overflow-y: scroll;
3 | max-height: 700px;
4 | }
5 |
--------------------------------------------------------------------------------
/code/SeCoFileStorage/Projektplan.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/SeCoFileStorage/Projektplan.pdf
--------------------------------------------------------------------------------
/code/TransferService/Projektplan.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/TransferService/Projektplan.pdf
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/serviceSelection/serviceSelection.component.css:
--------------------------------------------------------------------------------
1 | .dropboxTab{
2 | background-color: #303f9f;
3 | }
4 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/favicon.ico
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_directives/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ChangeBgColor.directive';
2 | export * from './scrollintoView.directive';
3 |
--------------------------------------------------------------------------------
/code/SeCoApi/exampleCalls/curl:
--------------------------------------------------------------------------------
1 | curl --form "fileupload=@npm-debug.log" "localhost:8080/api/dropbox?oauth2Token=adasd&path=adasdas"
2 |
3 |
4 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/repo.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 12.12.16.
3 | */
4 | export class Repo {
5 | repo: string;
6 | }
7 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/service.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"service.js","sourceRoot":"","sources":["service.ts"],"names":[],"mappings":""}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/versionControl/index.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 12.12.16.
3 | */
4 | export * from './versionControl.component';
5 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/team.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/team.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/user.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/MaterialIcons-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/MaterialIcons-Regular.eot
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/MaterialIcons-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/MaterialIcons-Regular.ttf
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/dropbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/dropbox.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/github.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/slack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/slack.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/MaterialIcons-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/MaterialIcons-Regular.woff
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/MaterialIcons-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/MaterialIcons-Regular.woff2
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/bitbucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/bitbucket.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/owncloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/owncloud.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_guards/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,cAAc,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,kBAAkB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/login/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,mBAAmB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/fileStorage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/fileStorage.png
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/assets/images/googleDrive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Transport-Protocol/SPF/master/code/Frontend/cliProject/src/assets/images/googleDrive.png
--------------------------------------------------------------------------------
/code/.idea/watcherTasks.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/fileStorage/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,yBAAyB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/register/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,sBAAsB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/teamArea/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,sBAAsB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,sBAAsB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/service.ts:
--------------------------------------------------------------------------------
1 | export interface Service{
2 | name: string;
3 | imgPath: string;
4 | disabled: boolean;
5 | content: string;
6 | }
7 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/serviceSelection/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,8BAA8B,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Google/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "grpcServerPort" : 50049,
3 | "grpcServerIp" : "localhost",
4 | "grpcFileTransferIp" : "localhost",
5 | "grpcFileTransferPort" : 50029
6 | }
--------------------------------------------------------------------------------
/code/Owncloud/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "grpcServerPort" : 50051,
3 | "grpcServerIp" : "localhost",
4 | "grpcFileTransferIp" : "localhost",
5 | "grpcFileTransferPort" : 50029
6 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/fsProvider.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 19.12.16.
3 | */
4 | export class FsProvider {
5 | name: string;
6 | imgPath: string;
7 | }
8 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/slackChannel.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 15.12.16.
3 | */
4 | export class SlackChannel {
5 | name: string;
6 | id: string;
7 | }
8 |
--------------------------------------------------------------------------------
/code/NotificationService/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "dbPath":"mongodb://127.0.0.1/secoNotification",
3 | "dbPoolSize":10,
4 | "grpcServerIp":"localhost",
5 | "grpcServerPort":50039
6 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/shareService.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 11.01.17.
3 | */
4 | export interface ShareService{
5 | name:string;
6 | imgPath:string;
7 | }
8 |
--------------------------------------------------------------------------------
/code/SeCoApi/MsgBroker/MsgBrokerType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 21.07.16.
3 | */
4 | var msgBrokerTypes = {
5 | RABBITMQ : 'RabbitMQ'
6 | };
7 |
8 | module.exports = msgBrokerTypes;
--------------------------------------------------------------------------------
/code/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/code/Owncloud/communication/RpcPublisherType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 01.08.2016.
3 | */
4 | var rpcPublisherType = {
5 | RABBITMQ : 'RabbitMQ'
6 | };
7 |
8 | module.exports = rpcPublisherType;
--------------------------------------------------------------------------------
/code/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_directives/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,mBAAmB,CAAC,EAAA;AAClC,iBAAc,2BAA2B,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,QAAQ,CAAC,EAAA;AACvB,iBAAc,gBAAgB,CAAC,EAAA;AACL"}
--------------------------------------------------------------------------------
/code/rabbitMqTest/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/code/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/testFiles/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Test
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/code/AuthenticationService/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "httpPort" : 8081,
3 | "grpcServerIp":"localhost",
4 | "grpcServerPort":50061,
5 | "userManagementServiceIp":"localhost",
6 | "userManagementServicePort":50054
7 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/slackChannelMessage.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 16.12.16.
3 | */
4 | export class SlackChannelMessage {
5 | message : string;
6 | name : string;
7 | ts : number;
8 | }
9 |
--------------------------------------------------------------------------------
/code/TeamManagement/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "dbPath":"mongodb://127.0.0.1/secoTeam",
3 | "dbPoolSize":10,
4 | "grpcServerIp":"localhost",
5 | "grpcServerPort":50045,
6 | "teamNameMinLength":4,
7 | "passwordMinLength":6
8 | }
--------------------------------------------------------------------------------
/code/rabbitMqTest/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/fileMetaData.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"fileMetaData.js","sourceRoot":"","sources":["fileMetaData.ts"],"names":[],"mappings":";AAAA;IAAA;IAGA,CAAC;IAAD,mBAAC;AAAD,CAAC,AAHD,IAGC;AAHY,oBAAY,eAGxB,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_guards/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./auth.guard'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/globalConfig.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.12.16.
3 | */
4 |
5 | //let baseUrl: string = 'https://philipphaw.github.io/Service-Composition/#/';
6 | export var baseUrl: string = 'http://localhost:4200/#/';
7 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./home.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/login/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./login.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/register/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./register.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/teamArea/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./teamArea.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./userArea.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/fileStorage/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./fileStorage.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Typings reference file, you can add your own global typings here
2 | // https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html
3 | declare var require: any;
4 | declare module "file-saver";
5 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,iBAAc,iBAAiB,CAAC,EAAA;AAChC,iBAAc,0BAA0B,CAAC,EAAA;AACzC,iBAAc,gBAAgB,CAAC,EAAA;AAC/B,iBAAc,uBAAuB,CAAC,EAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/serviceAuth.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 19.12.16.
3 | */
4 | export class ServiceAuth {
5 | name: string;
6 | type: string;
7 | status: boolean;
8 | loading: boolean;
9 | authUrl: string;
10 | }
11 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/serviceSelection/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./serviceSelection.component'));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Dropbox/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "dropboxToken":"8pFZZrjCIREAAAAAAABz-8Num_Z274v4hmJzxtqNLmTAtXsSS_mac1FXszTyUqY7",
3 | "grpcServerPort" : 50052,
4 | "grpcServerIp" : "localhost",
5 | "grpcFileTransferIp" : "localhost",
6 | "grpcFileTransferPort" : 50029
7 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/fileMetaData.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var FileMetaData = (function () {
3 | function FileMetaData() {
4 | }
5 | return FileMetaData;
6 | }());
7 | exports.FileMetaData = FileMetaData;
8 | //# sourceMappingURL=fileMetaData.js.map
--------------------------------------------------------------------------------
/code/.idea/typescript-compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./user'));
6 | __export(require('./fileMetaData'));
7 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/app.component.css:
--------------------------------------------------------------------------------
1 | .app-toolbar-filler {
2 | flex: 1 1 auto;
3 | }
4 |
5 | div.m2app-dark {
6 | background: black;
7 | }
8 |
9 | div.m2app-light {
10 | background: #fafafa;
11 | }
12 |
13 | .content-container {
14 | padding: 20px;
15 | }
16 |
--------------------------------------------------------------------------------
/code/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_directives/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./alert.component'));
6 | __export(require('./ChangeBgColor.directive'));
7 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/user.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"user.js","sourceRoot":"","sources":["user.ts"],"names":[],"mappings":";AAAA;IAKI,cAAY,QAAgB,EAAC,SAAiB;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACL,WAAC;AAAD,CAAC,AATD,IASC;AATY,YAAI,OAShB,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/home.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/fileMetaData.ts:
--------------------------------------------------------------------------------
1 | export class FileMetaData{
2 | name: string;
3 | tag: string;
4 | contentLength: number = 0;
5 | progressInPercent: number = 0;
6 | isDownloading: boolean;
7 | isTransfering: boolean;
8 | shareClicked: boolean;
9 | }
10 |
--------------------------------------------------------------------------------
/code/rabbitMqTest/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/code/.idea/code.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/user.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var User = (function () {
3 | function User(username, basicAuth) {
4 | this.username = username;
5 | this.basicAuth = basicAuth;
6 | }
7 | return User;
8 | }());
9 | exports.User = User;
10 | //# sourceMappingURL=user.js.map
--------------------------------------------------------------------------------
/code/UserManagement/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "dbPath": "mongodb://127.0.0.1/secoUser",
3 | "dbPoolSize": 10,
4 | "grpcServerIp": "localhost",
5 | "grpcServerPort": 50054,
6 | "authServiceIp": "localhost",
7 | "authServicePort": 50061,
8 | "userNameMinLength": 4,
9 | "passwordMinLength": 6
10 | }
11 |
--------------------------------------------------------------------------------
/code/SeCoApi/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "httpPort" : 8080,
3 | "rpcTimeoutMS" : 5000,
4 | "userServiceIp" : "localhost",
5 | "userServicePort" : 50054,
6 | "teamServiceIp" : "localhost",
7 | "teamServicePort" : 50045,
8 | "authServiceIp" : "localhost",
9 | "authServicePort" : 50061
10 | }
11 |
12 |
13 |
--------------------------------------------------------------------------------
/code/rabbitMqTest/.idea/code.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/user.ts:
--------------------------------------------------------------------------------
1 | export class User {
2 | username: string;
3 | basicAuth: string;
4 | password: string;
5 | password2: string;
6 |
7 | constructor(username: string,basicAuth: string) {
8 | this.username = username;
9 | this.basicAuth = basicAuth;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/helper.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.12.16.
3 | */
4 | import {browser, element, by, ElementFinder} from 'protractor';
5 |
6 | export function sendKeysToElement(element: ElementFinder, keys: string) {
7 | browser.actions().click(element.getWebElement()).sendKeys(keys).perform();
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/index.ts:
--------------------------------------------------------------------------------
1 | export * from './user';
2 | export * from './fileMetaData';
3 | export * from './service';
4 | export * from './team';
5 | export * from './repo';
6 | export * from './serviceAuth';
7 | export * from './fsProvider';
8 | export * from './shareService';
9 | export * from './xhrProgress';
10 |
--------------------------------------------------------------------------------
/code/installNodeModules.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | declare -a arr=("AuthenticationService" "Bitbucket" "Dropbox" "Google" "Github" "NotificationService" "Owncloud" "SeCoApi" "SeCoFileStorage" "Slack" "TeamManagement" "TransferService" "UserManagement" "Frontend/cliProject")
4 |
5 | for i in "${arr[@]}"
6 | do
7 | cd "$i"
8 | npm install
9 | cd ..
10 | done
11 |
--------------------------------------------------------------------------------
/code/rabbitMqTest/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rabbitmq",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "receive.js",
6 | "dependencies": {
7 | "amqplib": "^0.4.2"
8 | },
9 | "devDependencies": {},
10 | "scripts": {
11 | "test": "echo \"Error: no test specified\" && exit 1"
12 | },
13 | "author": "",
14 | "license": "ISC"
15 | }
16 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | __export(require('./alert.service'));
6 | __export(require('./authentication.service'));
7 | __export(require('./user.service'));
8 | __export(require('./fileStorage.service'));
9 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/code/RestTest/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "resttestserver",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "TestRestServer.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "express": "^4.14.0",
13 | "body-parser": "~1.0.1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/team.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 08.12.16.
3 | */
4 | export class Team {
5 | teamName: string;
6 | password: string;
7 | teamCreator: string;
8 | members: string [] = [];
9 | services: string [] = [];
10 |
11 | constructor(teamName: string,password: string) {
12 | this.teamName = teamName;
13 | this.password = password;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/home.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | import { User } from '../_models/index';
4 |
5 | @Component({
6 | templateUrl: 'home.component.html'
7 | })
8 |
9 | export class HomeComponent {
10 | currentUser: User;
11 |
12 | constructor() {
13 | this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/code/TransferService/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "grpcServerIp": "localhost",
3 | "grpcServerPort": 50029,
4 | "authServiceIp": "localhost",
5 | "authServicePort": 50054,
6 | "owncloudServiceIp": "localhost",
7 | "owncloudServicePort": 50051,
8 | "dropboxServiceIp": "localhost",
9 | "dropboxServicePort": 50052,
10 | "googleServiceIp": "localhost",
11 | "googleServicePort": 50049
12 | }
13 |
14 |
15 |
--------------------------------------------------------------------------------
/code/AuthenticationService/oauth2/services/dropbox.json:
--------------------------------------------------------------------------------
1 | {
2 | "service": "DROPBOX",
3 | "auth_url": "https://www.dropbox.com/1/oauth2/authorize",
4 | "access_token_url": "https://api.dropboxapi.com/1/oauth2/token",
5 | "client_id": "krqnhrofayxzazq",
6 | "client_secret": "oxyodpb0l4hlxmo",
7 | "redirect_uri": "https://servicecompo.ddns.net:8081/dropbox/oauth/callback",
8 | "redirect_route": "/dropbox/oauth/callback"
9 | }
--------------------------------------------------------------------------------
/code/AuthenticationService/oauth2/services/slack.json:
--------------------------------------------------------------------------------
1 | {
2 | "service": "SLACK",
3 | "auth_url": "https://slack.com/oauth/authorize",
4 | "access_token_url": "https://slack.com/api/oauth.access",
5 | "client_id": "79533239492.79558641106",
6 | "client_secret": "a338f2ebb190af09359f86b5e10e3f07",
7 | "redirect_uri": "https://servicecompo.ddns.net:8081/slack/oauth/callback",
8 | "redirect_route": "/slack/oauth/callback"
9 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/index.ts:
--------------------------------------------------------------------------------
1 | export * from './authentication.service';
2 | export * from './user.service';
3 | export * from './fileStorage.service';
4 | export * from './active-tab.service'
5 | export * from './team.service';
6 | export * from './versionControl.service';
7 | export * from './inform-new-team.service';
8 | export * from './slack.service';
9 | export * from './abstractFileStorageService';
10 |
--------------------------------------------------------------------------------
/code/JSON/RPC.JSON:
--------------------------------------------------------------------------------
1 | {
2 | "functionName" : "createFile",
3 | "queueName" : "q1",
4 |
5 | "name": "rabbitmq",
6 | "version": "1.0.0",
7 | "description": "",
8 | "main": "receive.js",
9 | "dependencies": {
10 | "amqplib": "^0.4.2"
11 | },
12 | "devDependencies": {},
13 | "scripts": {
14 | "test": "echo \"Error: no test specified\" && exit 1"
15 | },
16 | "author": "",
17 | "license": "ISC"
18 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/main.ts:
--------------------------------------------------------------------------------
1 | import './polyfills.ts';
2 |
3 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
4 | import { enableProdMode } from '@angular/core';
5 | import { environment } from './environments/environment';
6 | import { AppModule } from './app/';
7 |
8 | if (environment.production) {
9 | enableProdMode();
10 | }
11 |
12 | platformBrowserDynamic().bootstrapModule(AppModule);
13 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_animations/animations.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 09.12.16.
3 | */
4 | import { trigger, state, style, transition, animate } from '@angular/core';
5 |
6 | export const slideIn = trigger('slideIn', [
7 | state('in', style({transform: 'translateX(0)'})),
8 | transition('void => *', [
9 | style({transform: 'translateX(-100%)'}),
10 | animate('400ms ease-in')
11 | ])
12 | ]);
13 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/xhrProgress.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 19.01.17.
3 | */
4 | export class XhrProgress {
5 |
6 | bytes: number;
7 | total: number;
8 |
9 | constructor(bytes: number, total: number) {
10 | this.bytes = bytes;
11 | this.total = total;
12 | }
13 |
14 | public toString = () : string => {
15 | return `bytes: ` + this.bytes + ' total: ' + this.total;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/code/AuthenticationService/oauth2/services/github.json:
--------------------------------------------------------------------------------
1 | {
2 | "service": "GITHUB",
3 | "auth_url": "https://github.com/login/oauth/authorize",
4 | "access_token_url": "https://github.com/login/oauth/access_token",
5 | "client_id": "e7703193a0cc139aae74",
6 | "client_secret": "18419c2f87f2ccc146ce8e9d37d7e126f7ee32d9",
7 | "redirect_uri": "https://servicecompo.ddns.net:8081/github/oauth/callback",
8 | "redirect_route": "/github/oauth/callback"
9 | }
--------------------------------------------------------------------------------
/code/AuthenticationService/oauth2/services/bitbucket.json:
--------------------------------------------------------------------------------
1 | {
2 | "service": "BITBUCKET",
3 | "auth_url": "https://bitbucket.org/site/oauth2/authorize",
4 | "access_token_url": "https://bitbucket.org/site/oauth2/access_token",
5 | "client_id": "hdYA8D9vE9QeGVjBvz",
6 | "client_secret": "yG7y7qubEuEWhR487BaHMcgaQ85DgPpA",
7 | "redirect_uri": "https://servicecompo.ddns.net:8081/bitbucket/oauth/callback",
8 | "redirect_route": "/bitbucket/oauth/callback"
9 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "declaration": false,
5 | "emitDecoratorMetadata": true,
6 | "experimentalDecorators": true,
7 | "module": "commonjs",
8 | "moduleResolution": "node",
9 | "outDir": "../dist/out-tsc-e2e",
10 | "sourceMap": true,
11 | "target": "es5",
12 | "typeRoots": [
13 | "../node_modules/@types"
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // The file contents for the current environment will overwrite these during build.
2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do
3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead.
4 | // The list of which env maps to which file can be found in `angular-cli.json`.
5 |
6 | export const environment = {
7 | production: false
8 | };
9 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_models/app.config.ts:
--------------------------------------------------------------------------------
1 | import { OpaqueToken } from "@angular/core";
2 |
3 | export let APP_CONFIG = new OpaqueToken("app.config");
4 |
5 | export interface IAppConfig {
6 | apiEndpoint: string;
7 | }
8 |
9 | export const AppConfig: IAppConfig = {
10 | //apiEndpoint: "https://ec2-54-93-97-126.eu-central-1.compute.amazonaws.com:8080/api/"
11 | //apiEndpoint: "http://localhost:8080/api/"
12 | apiEndpoint: "https://servicecompo.ddns.net:8080/api/"
13 | };
14 |
--------------------------------------------------------------------------------
/code/SeCoFileStorage/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "dbPath": "mongodb://127.0.0.1/secoFileStorage",
3 | "dbPoolSize": 10,
4 | "grpcServerIp": "localhost",
5 | "grpcServerPort": 50040,
6 | "authServiceIp": "localhost",
7 | "authServicePort": 50054,
8 | "owncloudServiceIp": "localhost",
9 | "owncloudServicePort": 50051,
10 | "dropboxServiceIp": "localhost",
11 | "dropboxServicePort": 50052,
12 | "googleServiceIp": "localhost",
13 | "googleServicePort": 50049
14 | }
15 |
16 |
17 |
--------------------------------------------------------------------------------
/code/AuthenticationService/oauth2/services/google.json:
--------------------------------------------------------------------------------
1 | {
2 | "service": "GOOGLE",
3 | "auth_url": "https://accounts.google.com/o/oauth2/v2/auth",
4 | "access_token_url": "https://www.googleapis.com/oauth2/v4/token",
5 | "client_id": "991755779041-2pkhh9e2o4tjpfic4hc4gj83j3msq7bm.apps.googleusercontent.com",
6 | "client_secret": "nzXGBQmH94MSk-f3fUwOaCwb",
7 | "redirect_uri": "https://servicecompo.ddns.net:8081/google/oauth/callback",
8 | "redirect_route": "/google/oauth/callback"
9 | }
10 |
--------------------------------------------------------------------------------
/code/Dropbox/proto/fileTransfer.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package fileTransfer;
4 |
5 | // The rpc FileStorage service definition.
6 | service FileTransfer {
7 | rpc TransferTo (stream TransferToRequest) returns (TransferToReply) {}
8 | }
9 |
10 | // The request message
11 | message TransferToRequest {
12 | bytes chunk = 1;
13 | }
14 |
15 | // The response message
16 | message TransferToReply {
17 | string status = 1;
18 | uint32 errStatusCode = 3;
19 | string err = 2;
20 | }
21 |
--------------------------------------------------------------------------------
/code/Owncloud/proto/fileTransfer.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package fileTransfer;
4 |
5 | // The rpc FileStorage service definition.
6 | service FileTransfer {
7 | rpc TransferTo (stream TransferToRequest) returns (TransferToReply) {}
8 | }
9 |
10 | // The request message
11 | message TransferToRequest {
12 | bytes chunk = 1;
13 | }
14 |
15 | // The response message
16 | message TransferToReply {
17 | string status = 1;
18 | uint32 errStatusCode = 3;
19 | string err = 2;
20 | }
21 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_directives/scrollintoView.directive.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 17.12.16.
3 | */
4 | import { Directive, ElementRef, Renderer} from "@angular/core";
5 | @Directive({
6 | selector: "[MyFocus]"
7 | })
8 |
9 | export class ScrollIntoViewDirective {
10 | constructor(private _el: ElementRef, private renderer: Renderer) {
11 | }
12 |
13 | ngAfterViewInit(){
14 | this.renderer.invokeElementMethod(this._el.nativeElement, 'scrollIntoView');
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": "",
4 | "declaration": false,
5 | "emitDecoratorMetadata": true,
6 | "experimentalDecorators": true,
7 | "mapRoot": "./",
8 | "module": "es6",
9 | "moduleResolution": "node",
10 | "outDir": "../dist/out-tsc",
11 | "sourceMap": true,
12 | "target": "es5",
13 | "types": [
14 | "hammerjs"
15 | ],
16 | "typeRoots": [
17 | "../node_modules/@types"
18 | ]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | isDarkTheme: boolean = false;
10 |
11 |
12 | /**
13 | * Notification options
14 | */
15 | public options = {
16 | position: ["top", "left"],
17 | timeOut: 2000,
18 | animate: "fromRight",
19 | clickToClose: true
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Service Composition
6 |
7 |
8 |
9 |
10 |
12 |
13 |
14 | Loading...
15 |
16 |
17 |
--------------------------------------------------------------------------------
/code/rabbitMqTest/send.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 11.07.2016.
3 | */
4 | var amqp = require('amqplib/callback_api');
5 |
6 | amqp.connect('amqp://localhost', function(err, conn) {
7 | conn.createChannel(function(err, ch) {
8 | var q = 'hello';
9 | var msg = 'Hello World!';
10 |
11 | ch.assertQueue(q, {durable: false});
12 | ch.sendToQueue(q, new Buffer(msg));
13 | console.log(" [x] Sent %s", msg);
14 | });
15 | setTimeout(function() { conn.close(); process.exit(0) }, 500);
16 | });
--------------------------------------------------------------------------------
/code/TransferService/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "transferFilestorage",
3 | "version": "1.0.0",
4 | "description": "Enables transfer to an filestorage service",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "philipp prögel",
10 | "license": "ISC",
11 | "dependencies": {
12 | "chai": "^3.5.0",
13 | "chunk": "0.0.2",
14 | "grpc": "^1.0.1",
15 | "mocha": "^3.1.0",
16 | "nconf": "^0.8.4",
17 | "winston": "^2.2.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/code/SeCoFileStorage/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "teammanagement",
3 | "version": "1.0.0",
4 | "description": "Enables crud on team and populates it over grpc",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "philipp prögel",
10 | "license": "ISC",
11 | "dependencies": {
12 | "chai": "^3.5.0",
13 | "grpc": "^1.0.0",
14 | "mocha": "^3.1.0",
15 | "mongoose": "^4.5.10",
16 | "nconf": "^0.8.4",
17 | "winston": "^2.2.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/code/Google/proto/fileTransfer.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package fileTransfer;
4 |
5 | // The rpc FileStorage service definition.
6 | service FileTransfer {
7 | rpc TransferTo (stream TransferToRequest) returns (TransferToReply) {}
8 | }
9 |
10 | // The request message
11 | message TransferToRequest {
12 | bytes chunk = 1;
13 | }
14 |
15 | message Error {
16 | string msg = 1;
17 | int32 code = 2;
18 | }
19 |
20 | // The response message
21 | message TransferToReply {
22 | string status = 1;
23 | Error err = 2;
24 | }
25 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/teamArea/teamArea.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"teamArea.component.js","sourceRoot":"","sources":["teamArea.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAkC,eAAe,CAAC,CAAA;AAUlD;IAGI;QACI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,wBAAwB;IAC5B,CAAC;IAED,oCAAQ,GAAR;QACI,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAC1D,CAAC;IAhBL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,yBAAyB;SACzC,CAAC;;yBAAA;IAaF,wBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,yBAAiB,oBAW7B,CAAA"}
--------------------------------------------------------------------------------
/code/Owncloud/communication/RpcPublisher.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 01.08.2016.
3 | */
4 | var winston = require('winston');
5 | nconf = require('nconf');
6 |
7 | function MsgBroker(msgBrokerType,serverIp,serverPort){
8 | this.msgBrokerType = msgBrokerType;
9 |
10 | switch(this.msgBrokerType){
11 | case msgBrokerType.RABBITMQ:
12 | this.implementation = new RabbitMq(serverIp,serverPort);
13 | break;
14 | default:
15 | this.implementation = new RabbitMq(serverIp,serverPort);
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/code/TransferService/proto/fileTransfer.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package fileTransfer;
4 |
5 | // The rpc FileStorage service definition.
6 | service FileTransfer {
7 | rpc TransferTo (stream TransferToRequest) returns (TransferToReply) {}
8 | }
9 |
10 | // The request message
11 | message TransferToRequest {
12 | bytes chunk = 1;
13 | }
14 |
15 | message Error {
16 | string msg = 1;
17 | int32 code = 2;
18 | }
19 |
20 | // The response message
21 | message TransferToReply {
22 | string status = 1;
23 | Error err = 2;
24 | }
25 |
--------------------------------------------------------------------------------
/code/NotificationService/db/models/Notification.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 24.08.16.
3 | */
4 | // Load mongoose package
5 | var mongoose = require('mongoose');
6 |
7 | // Create a schema
8 | var NotificationSchema = new mongoose.Schema({
9 | username: {type: String, required: true},
10 | teamName: {type: String, required: true},
11 | message: {type: String, required: true},
12 | service: {type: String, required: true}
13 | }, {
14 | timestamps: true
15 | });
16 |
17 | module.exports = mongoose.model('Notification', NotificationSchema);
--------------------------------------------------------------------------------
/code/Frontend/cliProject/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # IDEs and editors
12 | /.idea
13 | /.vscode
14 | .project
15 | .classpath
16 | .c9/
17 | *.launch
18 | .settings/
19 |
20 | # misc
21 | /.sass-cache
22 | /connect.lock
23 | /coverage/*
24 | /libpeerconnection.log
25 | npm-debug.log
26 | testem.log
27 | /typings
28 |
29 | # e2e
30 | /e2e/*.js
31 | /e2e/*.map
32 |
33 | #System Files
34 | .DS_Store
35 | Thumbs.db
36 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_guards/auth.guard.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAA2B,eAAe,CAAC,CAAA;AAC3C,uBAAoC,iBAAiB,CAAC,CAAA;AAGtD;IAEI,mBAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAEvC,+BAAW,GAAX;QACI,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,2BAA2B;YAC3B,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAdL;QAAC,iBAAU,EAAE;;iBAAA;IAeb,gBAAC;AAAD,CAAC,AAdD,IAcC;AAdY,iBAAS,YAcrB,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_guards/auth.guard.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | import { Router, CanActivate } from '@angular/router';
3 |
4 | @Injectable()
5 | export class AuthGuard implements CanActivate {
6 |
7 | constructor(private router: Router) { }
8 |
9 | canActivate() {
10 | if (localStorage.getItem('currentUser')) {
11 | // logged in so return true
12 | return true;
13 | }
14 |
15 | // not logged in so redirect to login page
16 | this.router.navigate(['/login']);
17 | return false;
18 | }
19 | }
--------------------------------------------------------------------------------
/code/SeCoApi/utility/rpcJsonResponseBuilder.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 28.11.16.
3 | */
4 | "use strict";
5 |
6 | function buildError(errMsg) {
7 | return {
8 | "ok": false,
9 | "errorMsg": errMsg
10 | };
11 | }
12 |
13 | function buildParams(params, values) {
14 | var response = {
15 | "ok": true
16 | };
17 | for (var i = 0; i < params.length; i++) {
18 | response[params[i]] = values[i];
19 | }
20 | return response;
21 | }
22 |
23 | module.exports = {
24 | buildError: buildError,
25 | buildParams: buildParams
26 | };
27 |
--------------------------------------------------------------------------------
/code/TeamManagement/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "teammanagement",
3 | "version": "1.0.0",
4 | "description": "Enables crud on team and populates it over grpc",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "philipp prögel",
10 | "license": "ISC",
11 | "dependencies": {
12 | "async": "^2.0.1",
13 | "bcrypt": "^0.8.7",
14 | "chai": "^3.5.0",
15 | "grpc": "^1.0.0",
16 | "mocha": "^3.0.2",
17 | "mongoose": "^4.5.10",
18 | "nconf": "^0.8.4",
19 | "winston": "^2.2.0"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/code/connectorDescriptionPrototype.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470
2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
5 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
6 |
7 | \f0\fs24 \cf0 Connector Description\
8 | \
9 | Name\
10 | grpcIp\
11 | grpcPort\
12 | requests[\
13 | method\
14 | route\
15 | queryParameter\
16 | headerParameter\
17 | grpcFunctionName\
18 | ]\
19 | grpcProtoFile}
--------------------------------------------------------------------------------
/code/TransferService/transferServiceStart.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | process.chdir(__dirname); //set working directory to path of file that is being executed
3 | var winston = require('winston'),
4 | fs = require('fs'),
5 | server = require('./grpc/server'),
6 | nconf = require('nconf');
7 |
8 | function init() {
9 | nconf.file({file: './config/config.json'});
10 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
11 | server.start();
12 | winston.log('info', 'transfer service init succesful');
13 | }
14 |
15 | function main() {
16 | init();
17 | }
18 |
19 | main();
--------------------------------------------------------------------------------
/code/rabbitMqTest/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/change-team/change-team.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Select Team
4 |
5 |
6 | {{team.teamName}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/userArea.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"userArea.component.js","sourceRoot":"","sources":["userArea.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAkC,eAAe,CAAC,CAAA;AAElD,sBAA4B,oBAAoB,CAAC,CAAA;AASjD;IAGI,2BAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,oCAAQ,GAAR;QACI,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAC1D,CAAC;IAfL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,yBAAyB;SACzC,CAAC;;yBAAA;IAYF,wBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,yBAAiB,oBAU7B,CAAA"}
--------------------------------------------------------------------------------
/code/NotificationService/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "notificationservice",
3 | "version": "1.0.0",
4 | "description": "provides a service for setting and getting notifications inside a team",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "philipp prögel",
10 | "license": "ISC",
11 | "dependencies": {
12 | "async": "^2.0.1",
13 | "bcrypt": "^0.8.7",
14 | "chai": "^3.5.0",
15 | "grpc": "^1.0.0",
16 | "mocha": "^3.0.2",
17 | "mongoose": "^4.5.10",
18 | "nconf": "^0.8.4",
19 | "winston": "^2.2.0"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/code/UserManagement/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "usermanagement",
3 | "version": "1.0.0",
4 | "description": "Enables crud on user and populates over grpc",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "philipp prögel",
10 | "license": "ISC",
11 | "dependencies": {
12 | "async": "^2.0.1",
13 | "bcrypt": "^0.8.7",
14 | "chai": "^3.5.0",
15 | "grpc": "^1.0.0",
16 | "mocha": "^3.0.2",
17 | "mongoose": "^4.5.10",
18 | "nconf": "^0.8.4",
19 | "node-uuid": "^1.4.7",
20 | "winston": "^2.2.0"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/active-tab.service.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 07.12.16.
3 | */
4 | import { Injectable } from '@angular/core';
5 | import { Subject } from 'rxjs/Subject';
6 | import { Observable } from 'rxjs/Observable';
7 | @Injectable()
8 | export class ActiveTabService {
9 | // Observable string sources
10 | private wentActiveSource = new Subject();
11 | // Observable string streams
12 | wentActive$ = this.wentActiveSource.asObservable();
13 | // Service message commands
14 | wentActive(tabId: number) {
15 | this.wentActiveSource.next(tabId);
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/inform-new-team.service.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 14.12.16.
3 | */
4 | import { Injectable } from '@angular/core';
5 | import { Subject } from 'rxjs/Subject';
6 | import { Observable } from 'rxjs/Observable';
7 | @Injectable()
8 | export class InformNewTeamService {
9 | // Observable string sources
10 | private newTeamSource = new Subject();
11 | // Observable string streams
12 | newTeam$ = this.newTeamSource.asObservable();
13 | // Service message commands
14 | newTeam(hasTeam: boolean) {
15 | this.newTeamSource.next(hasTeam);
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/login/login.spec.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.12.16.
3 | */
4 | import {LoginPage} from './login.pageObject';
5 | import {browser} from 'protractor';
6 | import * as config from '../globalConfig';
7 |
8 | describe('Login page', function () {
9 | let page: LoginPage;
10 |
11 | beforeEach(() => {
12 | page = new LoginPage();
13 | });
14 |
15 | it('should login user', () => {
16 | page.navigateToLoginPage();
17 | page.login('philipp', 'philipp');
18 | expect(browser.getCurrentUrl()).toEqual(config.baseUrl); //if redirect worked,test passed
19 | });
20 |
21 | });
22 |
23 |
24 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/fileStorage/fileStorage.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"fileStorage.component.js","sourceRoot":"","sources":["fileStorage.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAwB,eAAe,CAAC,CAAA;AAExC,sBAA+C,oBAAoB,CAAC,CAAA;AASpE;IAKI,8BAAoB,YAA0B,EAAU,kBAAsC;QAA1E,iBAAY,GAAZ,YAAY,CAAc;QAAU,uBAAkB,GAAlB,kBAAkB,CAAoB;QAJtF,SAAI,GAAW,SAAS,CAAC;QACzB,SAAI,GAAmB,EAAE,CAAC;QAI9B,oEAAoE;QACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IAC7F,CAAC;IAdL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,4BAA4B;SAC5C,CAAC;;4BAAA;IAYF,2BAAC;AAAD,CAAC,AAVD,IAUC;AAVY,4BAAoB,uBAUhC,CAAA"}
--------------------------------------------------------------------------------
/code/SeCoFileStorage/seCoFileStorageStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 28.09.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | server = require('./grpc/server'),
9 | nconf = require('nconf');
10 |
11 | function init() {
12 | nconf.file({file: './config/config.json'});
13 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
14 | server.start();
15 | winston.log('info', 'SeCoFileStorage service init succesful');
16 | }
17 |
18 | function main() {
19 | init();
20 | }
21 |
22 | main();
--------------------------------------------------------------------------------
/code/AuthenticationService/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "authenticationservice",
3 | "version": "1.0.0",
4 | "description": "Enables oauth2 authentication for different services",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "philipp prögel",
10 | "license": "ISC",
11 | "dependencies": {
12 | "async": "^2.0.1",
13 | "chai": "^3.5.0",
14 | "cors": "^2.8.1",
15 | "express": "^4.14.0",
16 | "express-list-routes": "^0.1.4",
17 | "grpc": "^1.0.0",
18 | "mocha": "^3.0.2",
19 | "nconf": "^0.8.4",
20 | "request": "^2.74.0",
21 | "winston": "^2.2.0"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/home.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"home.component.js","sourceRoot":"","sources":["home.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAkC,eAAe,CAAC,CAAA;AAGlD,sBAA4B,oBAAoB,CAAC,CAAA;AAOjD;IAGI,uBAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,gCAAQ,GAAR;QACI,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IACnD,CAAC;IAhBL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,qBAAqB;SACrC,CAAC;;qBAAA;IAcF,oBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,qBAAa,gBAYzB,CAAA"}
--------------------------------------------------------------------------------
/code/Dropbox/dropboxStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server');
10 |
11 |
12 | function init() {
13 | nconf.argv()
14 | .env()
15 | .file({file: './config/config.json'});
16 | winston.log('info', 'Dropbox service init succesful');
17 | }
18 |
19 |
20 | function main() {
21 | init();
22 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
23 | server.start();
24 | }
25 |
26 |
27 | main();
--------------------------------------------------------------------------------
/code/rabbitMqTest/receive.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 11.07.2016.
3 | */
4 | var amqp = require('amqplib/callback_api');
5 |
6 | amqp.connect('amqp://localhost:5673', function(err, conn) {
7 | if(err){
8 | console.log('rabbitmq _server not reachable');
9 | } else {
10 | conn.createChannel(function (err, ch) {
11 | var q = 'hello';
12 |
13 | ch.assertQueue(q, {durable: false});
14 | console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", q);
15 | ch.consume(q, function (msg) {
16 | console.log(" [x] Received %s", msg.content.toString());
17 | }, {noAck: true});
18 | });
19 | }
20 | });
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/app.routing.ts:
--------------------------------------------------------------------------------
1 | import { Routes, RouterModule } from '@angular/router';
2 |
3 | import { HomeComponent } from './home/index';
4 | import { LoginComponent } from './login/index';
5 | import { RegisterComponent } from './register/index';
6 | import { AuthGuard } from './_guards/index';
7 |
8 | const appRoutes: Routes = [
9 | { path: '', component: HomeComponent, canActivate: [AuthGuard] },
10 | { path: 'login', component: LoginComponent },
11 | { path: 'register', component: RegisterComponent },
12 |
13 | // otherwise redirect to home
14 | { path: '**', redirectTo: '' }
15 | ];
16 |
17 | export const routing = RouterModule.forRoot(appRoutes, { useHash: true });
18 |
--------------------------------------------------------------------------------
/code/Owncloud/owncloudStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 25.07.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server');
10 |
11 |
12 | function init() {
13 | nconf.argv()
14 | .env()
15 | .file({file: './config/config.json'});
16 | winston.log('info', 'Owncloud service init succesful');
17 | }
18 |
19 |
20 | function main() {
21 | init();
22 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
23 | server.start();
24 | }
25 |
26 |
27 | main();
--------------------------------------------------------------------------------
/code/Dropbox/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dropbox",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "start.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "Philipp Prögel",
10 | "repository": {
11 | "type": "git",
12 | "url": "https://bitbucket.org/philippBB/ba.git"
13 | },
14 | "license": "ISC",
15 | "dependencies": {
16 | "amqplib": "^0.4.2",
17 | "chai": "^3.5.0",
18 | "chunk": "0.0.2",
19 | "grpc": "^1.0.1",
20 | "mocha": "^2.5.3",
21 | "nconf": "^0.8.4",
22 | "request": "^2.74.0",
23 | "winston": "^2.2.0"
24 | },
25 | "devDependencies": {
26 | "istanbul": "^0.4.4"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/register/register.spec.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.12.16.
3 | */
4 | import {RegisterPage} from './register.pageObject';
5 | import {browser} from 'protractor';
6 | import * as config from '../globalConfig';
7 |
8 | xdescribe('Register page', function () {
9 | let page: RegisterPage;
10 |
11 | beforeEach(() => {
12 | page = new RegisterPage();
13 | });
14 |
15 | it('should register user', () => {
16 | page.navigateToRegisterPage();
17 | page.register('username' + Math.random(), '123456', '123456');
18 | expect(browser.getCurrentUrl()).toEqual(config.baseUrl + 'login'); //if redirect to login worked,test passed
19 | });
20 |
21 | });
22 |
23 |
24 |
--------------------------------------------------------------------------------
/code/TeamManagement/teamManagementStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 24.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server');
10 |
11 |
12 | function init() {
13 | nconf.argv()
14 | .env()
15 | .file({file: './config/config.json'});
16 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
17 | winston.log('info', 'Team management service init succesful');
18 | }
19 |
20 |
21 | function main() {
22 | init();
23 | server.start();
24 | }
25 |
26 |
27 | main();
--------------------------------------------------------------------------------
/code/UserManagement/userManagementStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 24.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server');
10 |
11 |
12 | function init() {
13 | nconf.argv()
14 | .env()
15 | .file({file: './config/config.json'});
16 | winston.log('info', 'User management service init succesful');
17 | }
18 |
19 |
20 | function main() {
21 | init();
22 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
23 | server.start();
24 | }
25 |
26 |
27 | main();
--------------------------------------------------------------------------------
/code/Google/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "google",
3 | "version": "1.0.0",
4 | "description": "google api gateway",
5 | "main": "start.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "Philipp Prögel",
10 | "repository": {
11 | "type": "git",
12 | "url": "https://bitbucket.org/philippBB/ba.git"
13 | },
14 | "license": "ISC",
15 | "dependencies": {
16 | "amqplib": "^0.4.2",
17 | "chai": "^3.5.0",
18 | "chunk": "0.0.2",
19 | "grpc": "^1.0.1",
20 | "mocha": "^2.5.3",
21 | "nconf": "^0.8.4",
22 | "request": "^2.74.0",
23 | "winston": "^2.2.0"
24 | },
25 | "devDependencies": {
26 | "istanbul": "^0.4.4"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/code/Github/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "github",
3 | "version": "1.0.0",
4 | "description": "gateway to some functions of the github api",
5 | "main": "start.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "Philipp Prögel",
10 | "repository" :
11 | { "type" : "git"
12 | , "url" : "https://bitbucket.org/philippBB/ba.git"
13 | },
14 | "license": "ISC",
15 | "dependencies": {
16 | "amqplib": "^0.4.2",
17 | "chai": "^3.5.0",
18 | "grpc": "^1.0.0-pre1",
19 | "mocha": "^2.5.3",
20 | "nconf": "^0.8.4",
21 | "request": "^2.74.0",
22 | "winston": "^2.2.0"
23 | },
24 | "devDependencies": {
25 | "istanbul": "^0.4.4"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/code/NotificationService/notificationServiceStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 24.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server');
10 |
11 |
12 | function init() {
13 | nconf.argv()
14 | .env()
15 | .file({file: './config/config.json'});
16 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
17 | winston.log('info', 'Notification service init succesful');
18 | }
19 |
20 |
21 | function main() {
22 | init();
23 | server.start();
24 | }
25 |
26 |
27 | main();
--------------------------------------------------------------------------------
/code/Slack/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "slack",
3 | "version": "1.0.0",
4 | "description": "slack api gateway",
5 | "main": "start.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "Philipp Prögel",
10 | "repository": {
11 | "type": "git",
12 | "url": "https://bitbucket.org/philippBB/ba.git"
13 | },
14 | "license": "ISC",
15 | "dependencies": {
16 | "amqplib": "^0.4.2",
17 | "chai": "^3.5.0",
18 | "grpc": "^1.0.0-pre1",
19 | "hashmap": "^2.0.6",
20 | "mocha": "^2.5.3",
21 | "nconf": "^0.8.4",
22 | "request": "^2.74.0",
23 | "winston": "^2.2.0"
24 | },
25 | "devDependencies": {
26 | "istanbul": "^0.4.4"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/code/Slack/slackStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | slack = require('./slack'),
10 | server = require('./grpc/server');
11 |
12 |
13 | function init() {
14 | nconf.argv()
15 | .env()
16 | .file({file: './config/config.json'});
17 | winston.log('info', 'Google service init succesful');
18 | }
19 |
20 |
21 | function main() {
22 | init();
23 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
24 | server.start();
25 | }
26 |
27 |
28 | main();
--------------------------------------------------------------------------------
/code/Bitbucket/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bitbucket",
3 | "version": "1.0.0",
4 | "description": "gateway to some functions of the bitbucket api",
5 | "main": "start.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "Philipp Prögel",
10 | "repository" :
11 | { "type" : "git"
12 | , "url" : "https://bitbucket.org/philippBB/ba.git"
13 | },
14 | "license": "ISC",
15 | "dependencies": {
16 | "amqplib": "^0.4.2",
17 | "chai": "^3.5.0",
18 | "grpc": "^1.0.0-pre1",
19 | "mocha": "^2.5.3",
20 | "nconf": "^0.8.4",
21 | "request": "^2.74.0",
22 | "winston": "^2.2.0"
23 | },
24 | "devDependencies": {
25 | "istanbul": "^0.4.4"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/code/Github/githubStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server'),
10 | github = require('./github');
11 |
12 |
13 | function init() {
14 | nconf.argv()
15 | .env()
16 | .file({file: './config/config.json'});
17 | winston.log('info', 'Github service init succesful');
18 | }
19 |
20 |
21 | function main() {
22 | init();
23 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
24 | server.start();
25 | }
26 |
27 |
28 | main();
--------------------------------------------------------------------------------
/code/Google/googleStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | google = require('./google'),
10 | server = require('./grpc/server');
11 |
12 |
13 | function init() {
14 | nconf.argv()
15 | .env()
16 | .file({file: './config/config.json'});
17 | winston.log('info', 'Google service init succesful');
18 | }
19 |
20 |
21 | function main() {
22 | init();
23 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
24 | server.start();
25 | }
26 |
27 |
28 | main();
--------------------------------------------------------------------------------
/code/Bitbucket/bitbucketStart.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.08.16.
3 | */
4 | 'use strict';
5 | process.chdir(__dirname); //set working directory to path of file that is being executed
6 | var winston = require('winston'),
7 | fs = require('fs'),
8 | nconf = require('nconf'),
9 | server = require('./grpc/server'),
10 | bitbucket = require('./bitbucket');
11 |
12 |
13 | function init() {
14 | nconf.argv()
15 | .env()
16 | .file({file: './config/config.json'});
17 | winston.log('info', 'Bitbucket service init succesful');
18 | }
19 |
20 |
21 | function main() {
22 | init();
23 | server.init(nconf.get('grpcServerIp'), nconf.get('grpcServerPort'));
24 | server.start();
25 | }
26 |
27 |
28 | main();
--------------------------------------------------------------------------------
/code/SeCoFileStorage/db/models/TeamStorage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.09.16.
3 | */
4 | // Load mongoose package
5 | var mongoose = require('mongoose');
6 |
7 |
8 | // Create a schema
9 | var FileStorageSchema = new mongoose.Schema({
10 | seCoFilePath: {type: String, required: true},
11 | serviceFilePath: {type: String, required: true},
12 | fileName: {type: String, required: true},
13 | username: {type: String, required: true},
14 | serviceName: {type: String, required: true}
15 | });
16 |
17 | // Create a schema
18 | var TeamStorageSchema = new mongoose.Schema({
19 | teamName: {type: String, required: true},
20 | files:[FileStorageSchema]
21 | });
22 |
23 | module.exports = mongoose.model('TeamStorage', TeamStorageSchema);
--------------------------------------------------------------------------------
/code/Dropbox/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/Github/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/Google/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/Owncloud/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/RestTest/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/SeCoApi/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/Slack/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/Bitbucket/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/Owncloud/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "owncloud",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "start.js",
6 | "scripts": {
7 | "test": "./node_modules/.bin/mocha --reporter spec"
8 | },
9 | "author": "Philipp Prögel",
10 | "repository": {
11 | "type": "git",
12 | "url": "https://bitbucket.org/philippBB/ba.git"
13 | },
14 | "license": "ISC",
15 | "dependencies": {
16 | "amqplib": "^0.4.2",
17 | "chai": "^3.5.0",
18 | "chunk": "0.0.2",
19 | "grpc": "^1.0.1",
20 | "mocha": "^2.5.3",
21 | "nconf": "^0.8.4",
22 | "request": "^2.79.0",
23 | "winston": "^2.2.0",
24 | "xml2js": "^0.4.17",
25 | "xmldoc": "^1.0.0"
26 | },
27 | "devDependencies": {
28 | "istanbul": "^0.4.4"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/code/TeamManagement/test/dbTest:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 26.09.16.
3 | */
4 | 'use strict';
5 |
6 | var expect = require('chai').expect,
7 | assert = require('chai').assert,
8 | db = require('../db/db')
9 |
10 |
11 | function init(){
12 | db.connect(10,'mongodb://127.0.0.1/secoTeam');
13 | }
14 |
15 | var client = {};
16 |
17 | describe('TeamManagement', function () {
18 | before(function() {
19 | init();
20 | });
21 | describe('list', function () {
22 | it('all Teams a user is part of', function (done) {
23 | db.listTeams('test',function(err,teams){
24 | console.log(err);
25 | console.log(teams);
26 | done();
27 | });
28 | });
29 | });
30 | });
--------------------------------------------------------------------------------
/code/rabbitMqTest/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/SeCoFileStorage/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/TeamManagement/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/TransferService/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/UserManagement/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/AuthenticationService/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/code/NotificationService/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 | *.pid.lock
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # nyc test coverage
19 | .nyc_output
20 |
21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
22 | .grunt
23 |
24 | # node-waf configuration
25 | .lock-wscript
26 |
27 | # Compiled binary addons (http://nodejs.org/api/addons.html)
28 | build/Release
29 |
30 | # Dependency directories
31 | node_modules
32 | jspm_packages
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Mac
2 | .DS_Store
3 |
4 | # Logs
5 | logs
6 | *.log
7 | npm-debug.log*
8 |
9 | # Runtime data
10 | pids
11 | *.pid
12 | *.seed
13 | *.pid.lock
14 |
15 | # Directory for instrumented libs generated by jscoverage/JSCover
16 | lib-cov
17 |
18 | # Coverage directory used by tools like istanbul
19 | coverage
20 |
21 | # nyc test coverage
22 | .nyc_output
23 |
24 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
25 | .grunt
26 |
27 | # node-waf configuration
28 | .lock-wscript
29 |
30 | # Compiled binary addons (http://nodejs.org/api/addons.html)
31 | build/Release
32 |
33 | # Dependency directories
34 | node_modules
35 | jspm_packages
36 |
37 | # Optional npm cache directory
38 | .npm
39 |
40 | # Optional REPL history
41 | .node_repl_history
--------------------------------------------------------------------------------
/code/AuthenticationService/proto/authentication.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package authentication;
4 |
5 | //interface between auth service and user service to insert auth credentials to database
6 | service Authentication {
7 |
8 | rpc SetAuthentication (AuthenticationRequest) returns (AuthenticationReply) {
9 | }
10 |
11 | }
12 |
13 | //service types enum
14 | enum ServiceType {
15 | GITHUB = 0;
16 | DROPBOX = 1;
17 | BITBUCKET = 2;
18 | GOOGLE = 3;
19 | SLACK = 4;
20 | }
21 |
22 | message AuthenticationRequest {
23 | ServiceType service = 1;
24 | string username = 2;
25 | string access_token = 3;
26 | string refresh_token = 4;
27 | }
28 |
29 |
30 | message AuthenticationReply {
31 | string status = 1;
32 | string err = 2;
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/login/login.pageObject.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.12.16.
3 | */
4 | import {browser, element, by, ElementFinder} from 'protractor';
5 | import * as helper from '../helper';
6 | import * as config from '../globalConfig';
7 |
8 | export class LoginPage {
9 |
10 | private loginUrl: string = config.baseUrl + 'login';
11 |
12 | private loginButton = element(by.buttonText('login'));
13 |
14 |
15 | login(name: string, password: string) {
16 | helper.sendKeysToElement(element(by.className('loginUsernameInput')),name);
17 | helper.sendKeysToElement(element(by.className('loginPasswordInput')),password);
18 | this.loginButton.click();
19 | }
20 |
21 | navigateToLoginPage() {
22 | return browser.get(this.loginUrl);
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_directives/ChangeBgColor.directive.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"ChangeBgColor.directive.js","sourceRoot":"","sources":["ChangeBgColor.directive.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;;GAEG;AACH,qBAA6C,eAAe,CAAC,CAAA;AAS7D;IAII,gCAAY,EAAc;QAHlB,kBAAa,GAAG,MAAM,CAAC;QAGD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;IAAC,CAAC;IAI3D,6CAAY,GAAZ,cAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7E,6CAAY,GAAZ,cAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhC,0CAAS,GAAjB,UAAkB,KAAY;QAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IAC1C,CAAC;IAPD;QAAC,YAAK,CAAC,aAAa,CAAC;;kEAAA;IAbzB;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,mBAAmB;YAC7B,IAAI,EAAE;gBACF,cAAc,EAAE,gBAAgB;gBAChC,cAAc,EAAE,gBAAgB;aACnC;SACJ,CAAC;;8BAAA;IAgBF,6BAAC;AAAD,CAAC,AAfD,IAeC;AAfY,8BAAsB,yBAelC,CAAA"}
--------------------------------------------------------------------------------
/code/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/code/Frontend/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | # Runtime data
7 | pids
8 | *.pid
9 | *.seed
10 |
11 | # Directory for instrumented libs generated by jscoverage/JSCover
12 | lib-cov
13 |
14 | # Coverage directory used by tools like istanbul
15 | coverage
16 |
17 | # nyc test coverage
18 | .nyc_output
19 |
20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
21 | .grunt
22 |
23 | # node-waf configuration
24 | .lock-wscript
25 |
26 | # Compiled binary addons (http://nodejs.org/api/addons.html)
27 | build/Release
28 |
29 | # Dependency directories
30 | node_modules
31 | jspm_packages
32 | typings
33 |
34 | # Optional npm cache directory
35 | .npm
36 |
37 | # Optional REPL history
38 | .node_repl_history
39 |
40 | # Generated files
41 | app/**/*.js
42 | app/**/*.js.map
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/polyfills.ts:
--------------------------------------------------------------------------------
1 | // This file includes polyfills needed by Angular 2 and is loaded before
2 | // the app. You can add your own extra polyfills to this file.
3 | import 'core-js/es6/symbol';
4 | import 'core-js/es6/object';
5 | import 'core-js/es6/function';
6 | import 'core-js/es6/parse-int';
7 | import 'core-js/es6/parse-float';
8 | import 'core-js/es6/number';
9 | import 'core-js/es6/math';
10 | import 'core-js/es6/string';
11 | import 'core-js/es6/date';
12 | import 'core-js/es6/array';
13 | import 'core-js/es6/regexp';
14 | import 'core-js/es6/map';
15 | import 'core-js/es6/set';
16 | import 'core-js/es6/reflect';
17 |
18 | import 'core-js/es7/reflect';
19 | import 'zone.js/dist/zone';
20 | import 'hammerjs';
21 |
22 | //for animations in unsupported browsers
23 | import 'web-animations-js/web-animations.min';
24 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/app.e2e-spec.ts:
--------------------------------------------------------------------------------
1 | /*
2 | import {LoginPage} from './loginPage.po';
3 | import {browser, element, by, ElementFinder} from 'protractor';
4 |
5 | describe('cli-project App', function () {
6 | let page: LoginPage;
7 | //let baseUrl: string = 'https://philipphaw.github.io/Service-Composition/#/';
8 | let baseUrl: string = 'http://localhost:4200/#/';
9 |
10 | it('should create team', () => {
11 | page.clickCreateTeamButton();
12 | page.sendKeysToElement(page.getElementByClass('createTeamInputName'),'Team' + Math.random());
13 | page.sendKeysToElement(page.getElementByClass('createTeamInputPassword'),'123456');
14 | page.clickCreateButton();
15 | var createTeamInputNameElement = page.getElementByClass('createTeamInputName');
16 | expect(createTeamInputNameElement.isPresent()).toBeFalsy();
17 | });
18 |
19 | });
20 | */
21 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_directives/ChangeBgColor.directive.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.12.16.
3 | */
4 | import {Directive, ElementRef, Input} from '@angular/core';
5 |
6 | @Directive({
7 | selector: '[app-MyChangeBgColor]',
8 | host: {
9 | '(mouseenter)': 'onMouseEnter()',
10 | '(mouseleave)': 'onMouseLeave()'
11 | }
12 | })
13 | export class ChangeBgColorDirective {
14 | @Input() highlightColor: string;
15 | private _defaultColor = 'blue';
16 | private el: HTMLElement;
17 |
18 | constructor(el: ElementRef) {
19 | this.el = el.nativeElement;
20 | }
21 |
22 |
23 | onMouseEnter() {
24 | this.highlight(this.highlightColor || this._defaultColor);
25 | }
26 |
27 | onMouseLeave() {
28 | this.highlight(null);
29 | }
30 |
31 | private highlight(color: string) {
32 | this.el.style.backgroundColor = color;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/fileStorage.service.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"fileStorage.service.js","sourceRoot":"","sources":["fileStorage.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAyB,eAAe,CAAC,CAAA;AACzC,qBAAsD,eAAe,CAAC,CAAA;AAEtE,QAAO,yBAAyB,CAAC,CAAA;AACjC,QAAO,2BAA2B,CAAC,CAAA;AAGnC;IAEI,4BAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAC9B,CAAC;IAED,gDAAmB,GAAnB,UAAoB,GAAW,EAAE,WAAmB;QAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC;QAC3C,IAAI,IAAI,GAAG;YACP;gBACI,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,MAAM;aACd;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,MAAM;aACd;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,MAAM;aACd;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,MAAM;aACd;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,MAAM;aACd;SACJ,CAAC;QACF,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAhCL;QAAC,iBAAU,EAAE;;0BAAA;IAkCb,yBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,0BAAkB,qBAiC9B,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/slack/slack.component.spec.ts:
--------------------------------------------------------------------------------
1 | /* tslint:disable:no-unused-variable */
2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing';
3 | import { By } from '@angular/platform-browser';
4 | import { DebugElement } from '@angular/core';
5 |
6 | import { SlackComponent } from './slack.component';
7 |
8 | describe('SlackComponent', () => {
9 | let component: SlackComponent;
10 | let fixture: ComponentFixture;
11 |
12 | beforeEach(async(() => {
13 | TestBed.configureTestingModule({
14 | declarations: [ SlackComponent ]
15 | })
16 | .compileComponents();
17 | }));
18 |
19 | beforeEach(() => {
20 | fixture = TestBed.createComponent(SlackComponent);
21 | component = fixture.componentInstance;
22 | fixture.detectChanges();
23 | });
24 |
25 | it('should create', () => {
26 | expect(component).toBeTruthy();
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/code/RestTest/restTest.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 12.07.2016.
3 | */
4 | var http = require('http');
5 | var options = {
6 | host: 'www.random.org',
7 | path: '/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
8 | };
9 |
10 | var req = http.get(options, function(res) {
11 | console.log('STATUS: ' + res.statusCode);
12 | console.log('HEADERS: ' + JSON.stringify(res.headers));
13 |
14 | // Buffer the body entirely for processing as a whole.
15 | var bodyChunks = [];
16 | res.on('data', function(chunk) {
17 | // You can process streamed parts here...
18 | bodyChunks.push(chunk);
19 | }).on('end', function() {
20 | var body = Buffer.concat(bodyChunks);
21 | console.log('BODY: ' + body);
22 | // ...and/or process the entire body here.
23 | })
24 | });
25 |
26 | req.on('error', function(e) {
27 | console.log('ERROR: ' + e.message);
28 | });
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/serviceSelection/serviceSelection.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, ViewEncapsulation} from '@angular/core';
2 | import {Router} from '@angular/router';
3 |
4 | import {Service} from '../_models/service';
5 | import {ActiveTabService} from '../_services/index';
6 |
7 | @Component({
8 | selector: 'serviceSelection',
9 | templateUrl: 'serviceSelection.component.html',
10 | styleUrls: ['serviceSelection.component.css'],
11 | encapsulation: ViewEncapsulation.None,
12 | providers: [ActiveTabService]
13 | })
14 |
15 | export class ServiceSelectionComponent {
16 | private current: number = 0;
17 | private tabStarted: boolean[]= [false,false,false,false,false,false];
18 |
19 | constructor(private router: Router, private activeTabService: ActiveTabService) {
20 | activeTabService.wentActive$.subscribe(
21 | tabId => {
22 | this.tabStarted[tabId] = true;
23 | });
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/code/SeCoFileStorage/pathParser.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 01.10.16.
3 | */
4 |
5 |
6 | /**
7 | *
8 | * @param path
9 | * @returns {path and fileName}
10 | */
11 | function parsePath(path){
12 | if(!path || path === undefined) return null;
13 | var splitted = path.split('/');
14 | if(splitted.length === 0){
15 | //no '/' found, root directory
16 | return {
17 | path: 'root',
18 | fileName: path
19 | }
20 | }
21 | var filePath = 'root';
22 | for(var i = 0;i {
9 | let component: CreateTeamComponent;
10 | let fixture: ComponentFixture;
11 |
12 | beforeEach(async(() => {
13 | TestBed.configureTestingModule({
14 | declarations: [ CreateTeamComponent ]
15 | })
16 | .compileComponents();
17 | }));
18 |
19 | beforeEach(() => {
20 | fixture = TestBed.createComponent(CreateTeamComponent);
21 | component = fixture.componentInstance;
22 | fixture.detectChanges();
23 | });
24 |
25 | it('should create', () => {
26 | expect(component).toBeTruthy();
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/userArea.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | User Area
4 | Logged in as: {{currentUser.username}}!
5 |
6 |
7 |
8 | content area
9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/auth-settings/auth-settings.component.spec.ts:
--------------------------------------------------------------------------------
1 | /* tslint:disable:no-unused-variable */
2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing';
3 | import { By } from '@angular/platform-browser';
4 | import { DebugElement } from '@angular/core';
5 |
6 | import { AuthSettingsComponent } from './auth-settings.component';
7 |
8 | describe('AuthSettingsComponent', () => {
9 | let component: AuthSettingsComponent;
10 | let fixture: ComponentFixture;
11 |
12 | beforeEach(async(() => {
13 | TestBed.configureTestingModule({
14 | declarations: [ AuthSettingsComponent ]
15 | })
16 | .compileComponents();
17 | }));
18 |
19 | beforeEach(() => {
20 | fixture = TestBed.createComponent(AuthSettingsComponent);
21 | component = fixture.componentInstance;
22 | fixture.detectChanges();
23 | });
24 |
25 | it('should create', () => {
26 | expect(component).toBeTruthy();
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/code/SeCoApi/proto/notification.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package notification;
4 |
5 | // The rpc FileStorage service definition.
6 | service Notification {
7 | rpc Create (CreateRequest) returns (CreateReply) {
8 | }
9 |
10 | rpc List (ListRequest) returns (ListReply) {
11 | }
12 | }
13 |
14 | //service types enum
15 | enum ServiceType {
16 | GITHUB = 0;
17 | DROPBOX = 1;
18 | BITBUCKET = 2;
19 | GOOGLE = 3;
20 | SLACK = 4;
21 | OWNCLOUD = 5;
22 | SECOFILESTORAGE = 6;
23 | }
24 |
25 | message CreateRequest {
26 | string username = 1;
27 | string team = 2;
28 | string message = 3;
29 | ServiceType service = 4;
30 | }
31 |
32 | message CreateReply {
33 | string status = 1;
34 | string err = 2;
35 | }
36 |
37 | message ListRequest {
38 | string team = 1;
39 | string username = 2;
40 | int32 timeStamp = 3;
41 | }
42 |
43 | message ListReply {
44 | string notifications = 1;
45 | string err = 2;
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/code/NotificationService/proto/notification.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package notification;
4 |
5 | // The rpc FileStorage service definition.
6 | service Notification {
7 | rpc Create (CreateRequest) returns (CreateReply) {
8 | }
9 |
10 | rpc List (ListRequest) returns (ListReply) {
11 | }
12 | }
13 |
14 | //service types enum
15 | enum ServiceType {
16 | GITHUB = 0;
17 | DROPBOX = 1;
18 | BITBUCKET = 2;
19 | GOOGLE = 3;
20 | SLACK = 4;
21 | OWNCLOUD = 5;
22 | SECOFILESTORAGE = 6;
23 | }
24 |
25 | message CreateRequest {
26 | string username = 1;
27 | string team = 2;
28 | string message = 3;
29 | ServiceType service = 4;
30 | }
31 |
32 | message CreateReply {
33 | string status = 1;
34 | string err = 2;
35 | }
36 |
37 | message ListRequest {
38 | string team = 1;
39 | string username = 2;
40 | int32 timeStamp = 3;
41 | }
42 |
43 | message ListReply {
44 | string notifications = 1;
45 | string err = 2;
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/protractor.conf.js:
--------------------------------------------------------------------------------
1 | // Protractor configuration file, see link for more information
2 | // https://github.com/angular/protractor/blob/master/docs/referenceConf.js
3 |
4 | /*global jasmine */
5 | var SpecReporter = require('jasmine-spec-reporter');
6 |
7 | exports.config = {
8 | allScriptsTimeout: 11000,
9 | ignoreUncaughtExceptions: true,
10 | specs: [
11 | './e2e/register/*.spec.ts',
12 | './e2e/login/*.spec.ts',
13 | './e2e/home/*.spec.ts'
14 | ],
15 | capabilities: {
16 | 'browserName': 'chrome'
17 | },
18 | directConnect: true,
19 | baseUrl: 'http://localhost:4200/',
20 | framework: 'jasmine',
21 | jasmineNodeOpts: {
22 | showColors: true,
23 | defaultTimeoutInterval: 30000,
24 | print: function() {}
25 | },
26 | useAllAngular2AppRoots: true,
27 | beforeLaunch: function() {
28 | require('ts-node').register({
29 | project: 'e2e'
30 | });
31 | },
32 | onPrepare: function() {
33 | jasmine.getEnv().addReporter(new SpecReporter());
34 | }
35 | };
36 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/teamArea/teamArea.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Team Area
4 | Active Team:
5 | {{currentTeam.teamName}}
6 | none
7 |
8 |
9 |
10 |
11 | content area
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/e2e/register/register.pageObject.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 29.12.16.
3 | */
4 | import {browser, element, by, ElementFinder} from 'protractor';
5 | import * as helper from '../helper';
6 | import * as config from '../globalConfig';
7 |
8 | export class RegisterPage {
9 |
10 | private registerUrl = config.baseUrl + 'register';
11 | private username = element.all(by.css('.md-input-element')).get(0);
12 | private password1 = element.all(by.css('.md-input-element')).get(1);
13 | private password2 = element.all(by.css('.md-input-element')).get(2);
14 | private registerButton = element(by.buttonText('submit'));
15 |
16 | register(username: string, password1: string, password2: string) {
17 | helper.sendKeysToElement(this.username, username);
18 | helper.sendKeysToElement(this.password1, password1);
19 | helper.sendKeysToElement(this.password2, password2);
20 | this.registerButton.click();
21 | }
22 |
23 |
24 | navigateToRegisterPage() {
25 | return browser.get(this.registerUrl);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/code/rabbitMqTest/rpc_server.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 11.07.2016.
3 | */
4 |
5 | var amqp = require('amqplib/callback_api');
6 |
7 | amqp.connect('amqp://localhost', function(err, conn) {
8 | conn.createChannel(function(err, ch) {
9 | var q = 'rpc_queue';
10 |
11 | ch.assertQueue(q, {durable: false});
12 | ch.prefetch(1);
13 | console.log(' [x] Awaiting RPC requests');
14 | ch.consume(q, function reply(msg) {
15 | var jsonContent = JSON.parse(msg.content);
16 | var n = parseInt(jsonContent.num);
17 |
18 | console.log(" [.] fib(%d)", n);
19 | var r = fibonacci(n);
20 |
21 | ch.sendToQueue(msg.properties.replyTo,
22 | new Buffer(r.toString()),
23 | {correlationId: msg.properties.correlationId});
24 |
25 | ch.ack(msg);
26 | });
27 | });
28 | });
29 |
30 | function fibonacci(n) {
31 | if (n == 0 || n == 1)
32 | return n;
33 | else
34 | return fibonacci(n - 1) + fibonacci(n - 2);
35 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_pipes/fileSize.pipe.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 19.01.17.
3 | */
4 | import { Pipe, PipeTransform } from '@angular/core';
5 |
6 | /*
7 | * Convert bytes into largest possible unit.
8 | * Takes an precision argument that defaults to 2.
9 | * Usage:
10 | * bytes | fileSize:precision
11 | * Example:
12 | * {{ 1024 | fileSize}}
13 | * formats to: 1 KB
14 | */
15 | @Pipe({name: 'fileSize'})
16 | export class FileSizePipe implements PipeTransform {
17 |
18 | private units = [
19 | 'bytes',
20 | 'KB',
21 | 'MB',
22 | 'GB',
23 | 'TB',
24 | 'PB'
25 | ];
26 |
27 | transform(bytes: number = 0, precision: number = 2 ) : string {
28 | if ( isNaN( parseFloat( String(bytes) )) || ! isFinite( bytes ) ) return '?';
29 | let unit = 0;
30 |
31 | if(bytes < 1024){
32 | return bytes + ' bytes';
33 | }
34 |
35 | while ( bytes >= 1024 ) {
36 | bytes /= 1024;
37 | unit ++;
38 | }
39 | return bytes.toFixed( + precision ) + ' ' + this.units[ unit ];
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/code/SeCoApi/utility/headerChecker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 19.07.16.
3 | */
4 | var RpcJsonResponseBuilder = require('./rpcJsonResponseBuilder');
5 |
6 | function HeaderChecker(){
7 | }
8 |
9 | HeaderChecker.prototype.containsParameter = function (params, req, res){
10 | if(params === undefined){
11 | return true;
12 | }
13 | var allParamsOk = true;
14 | for(var i = 0;i {
21 | return response;
22 | })
23 | .catch(this.handleError);
24 | }
25 |
26 | private handleError(error: Response | any) {
27 | return Observable.throw(error || 'Server error');
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/code/Owncloud/test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 15.01.17.
3 | */
4 | var request = require('request');
5 |
6 |
7 | var options = {
8 | method: 'Get',
9 | uri: 'https://owncloud.informatik.haw-hamburg.de/remote.php/webdav/REAME.pdf',
10 | auth: {
11 | user: 'abi515',
12 | password: 'Injection1',
13 | sendImmediately: false
14 | }
15 | };
16 | var call = request(options);
17 |
18 |
19 | call.on('response', function (response) {
20 | var body = '';
21 | response.on('data', function (chunk) {
22 | body += chunk;
23 | });
24 | response.on('end', function () {
25 | console.log('BODY: ' + body);
26 | });
27 | });
28 |
29 | if (err) {
30 | winston.log('error', 'application error: ', err);
31 | return callback(err);
32 | }
33 | if (response.statusCode >= 400 && response.statusCode <= 499) {
34 | winston.log('error', 'http error: ', err);
35 | return callback(new Error(response.statusCode + ': ' + response.statusMessage));
36 | }
37 | winston.log('info', 'succesfully got file from dropbox');
38 | return callback(null, fileName, body);
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 | Service Composition
10 |
11 |
12 |
13 |
14 |
15 | Login
16 |
17 |
18 | Register
19 |
20 |
21 | Home
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/code/SeCoApi/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "secoapi",
3 | "version": "1.0.0",
4 | "description": "REST conform gateway to various webservices",
5 | "main": "server.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "prestart": "mongod --dbpath /Users/PhilippMac/Desktop/mongodb/db/data --fork --logpath /dev/null",
9 | "start": "node secoApiStart.js"
10 | },
11 | "author": "Philipp Prögel",
12 | "repository": {
13 | "type": "git",
14 | "url": "https://bitbucket.org/philippBB/ba.git"
15 | },
16 | "license": "ISC",
17 | "dependencies": {
18 | "amqplib": "^0.4.2",
19 | "basic-auth": "^1.0.4",
20 | "body-parser": "^1.15.2",
21 | "chunk": "0.0.2",
22 | "cookie-parser": "^1.4.3",
23 | "cors": "^2.8.1",
24 | "express": "^4.14.0",
25 | "express-fileupload": "0.0.5",
26 | "express-list-routes": "^0.1.4",
27 | "express-session": "^1.14.1",
28 | "grpc": "^1.0.1",
29 | "hashmap": "^2.0.6",
30 | "heapdump": "^0.3.7",
31 | "letsencrypt-express": "^2.0.5",
32 | "nconf": "^0.8.4",
33 | "winston": "^2.2.0"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/code/SeCoApi/proto/authentication.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package authentication;
4 |
5 | //interface between auth service and user service to insert auth credentials to database
6 | service Authentication {
7 |
8 | rpc SetAuthentication (SetAuthenticationRequest) returns (SetAuthenticationReply) {
9 | }
10 |
11 | rpc GetAuthentication (GetAuthenticationRequest) returns (GetAuthenticationReply) {
12 | }
13 |
14 | }
15 |
16 | //service types enum
17 | enum ServiceType {
18 | GITHUB = 0;
19 | DROPBOX = 1;
20 | BITBUCKET = 2;
21 | GOOGLE = 3;
22 | SLACK = 4;
23 | OWNCLOUD = 5;
24 | }
25 |
26 | message SetAuthenticationRequest {
27 | ServiceType service = 1;
28 | string username = 2;
29 | string access_token = 3;
30 | string refresh_token = 4;
31 | }
32 |
33 |
34 | message SetAuthenticationReply {
35 | string status = 1;
36 | string err = 2;
37 | }
38 |
39 | message GetAuthenticationRequest {
40 | ServiceType service = 1;
41 | string username = 2;
42 | }
43 |
44 |
45 | message GetAuthenticationReply {
46 | string token = 1;
47 | string err = 2;
48 | }
49 |
--------------------------------------------------------------------------------
/code/SeCoFileStorage/proto/authentication.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package authentication;
4 |
5 | //interface between auth service and user service to insert auth credentials to database
6 | service Authentication {
7 |
8 | rpc SetAuthentication (SetAuthenticationRequest) returns (SetAuthenticationReply) {
9 | }
10 |
11 | rpc GetAuthentication (GetAuthenticationRequest) returns (GetAuthenticationReply) {
12 | }
13 |
14 | }
15 |
16 | //service types enum
17 | enum ServiceType {
18 | GITHUB = 0;
19 | DROPBOX = 1;
20 | BITBUCKET = 2;
21 | GOOGLE = 3;
22 | SLACK = 4;
23 | OWNCLOUD = 5;
24 | }
25 |
26 | message SetAuthenticationRequest {
27 | ServiceType service = 1;
28 | string username = 2;
29 | string access_token = 3;
30 | string refresh_token = 4;
31 | }
32 |
33 |
34 | message SetAuthenticationReply {
35 | string status = 1;
36 | string err = 2;
37 | }
38 |
39 | message GetAuthenticationRequest {
40 | ServiceType service = 1;
41 | string username = 2;
42 | }
43 |
44 |
45 | message GetAuthenticationReply {
46 | string token = 1;
47 | string err = 2;
48 | }
49 |
--------------------------------------------------------------------------------
/code/TransferService/proto/authentication.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package authentication;
4 |
5 | //interface between auth service and user service to insert auth credentials to database
6 | service Authentication {
7 |
8 | rpc SetAuthentication (SetAuthenticationRequest) returns (SetAuthenticationReply) {
9 | }
10 |
11 | rpc GetAuthentication (GetAuthenticationRequest) returns (GetAuthenticationReply) {
12 | }
13 |
14 | }
15 |
16 | //service types enum
17 | enum ServiceType {
18 | GITHUB = 0;
19 | DROPBOX = 1;
20 | BITBUCKET = 2;
21 | GOOGLE = 3;
22 | SLACK = 4;
23 | OWNCLOUD = 5;
24 | }
25 |
26 | message SetAuthenticationRequest {
27 | ServiceType service = 1;
28 | string username = 2;
29 | string access_token = 3;
30 | string refresh_token = 4;
31 | }
32 |
33 |
34 | message SetAuthenticationReply {
35 | string status = 1;
36 | string err = 2;
37 | }
38 |
39 | message GetAuthenticationRequest {
40 | ServiceType service = 1;
41 | string username = 2;
42 | }
43 |
44 |
45 | message GetAuthenticationReply {
46 | string token = 1;
47 | string err = 2;
48 | }
49 |
--------------------------------------------------------------------------------
/code/UserManagement/proto/authentication.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package authentication;
4 |
5 | //interface between auth service and user service to insert auth credentials to database
6 | service Authentication {
7 |
8 | rpc SetAuthentication (SetAuthenticationRequest) returns (SetAuthenticationReply) {
9 | }
10 |
11 | rpc GetAuthentication (GetAuthenticationRequest) returns (GetAuthenticationReply) {
12 | }
13 |
14 | }
15 |
16 | //service types enum
17 | enum ServiceType {
18 | GITHUB = 0;
19 | DROPBOX = 1;
20 | BITBUCKET = 2;
21 | GOOGLE = 3;
22 | SLACK = 4;
23 | OWNCLOUD = 5;
24 | }
25 |
26 | message SetAuthenticationRequest {
27 | ServiceType service = 1;
28 | string username = 2;
29 | string access_token = 3;
30 | string refresh_token = 4;
31 | }
32 |
33 |
34 | message SetAuthenticationReply {
35 | string status = 1;
36 | string err = 2;
37 | }
38 |
39 | message GetAuthenticationRequest {
40 | ServiceType service = 1;
41 | string username = 2;
42 | }
43 |
44 |
45 | message GetAuthenticationReply {
46 | string token = 1;
47 | string err = 2;
48 | }
49 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/test.ts:
--------------------------------------------------------------------------------
1 | import './polyfills.ts';
2 |
3 | import 'zone.js/dist/long-stack-trace-zone';
4 | import 'zone.js/dist/proxy.js';
5 | import 'zone.js/dist/sync-test';
6 | import 'zone.js/dist/jasmine-patch';
7 | import 'zone.js/dist/async-test';
8 | import 'zone.js/dist/fake-async-test';
9 | import { getTestBed } from '@angular/core/testing';
10 | import {
11 | BrowserDynamicTestingModule,
12 | platformBrowserDynamicTesting
13 | } from '@angular/platform-browser-dynamic/testing';
14 |
15 | // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
16 | declare var __karma__: any;
17 | declare var require: any;
18 |
19 | // Prevent Karma from running prematurely.
20 | __karma__.loaded = function () {};
21 |
22 | // First, initialize the Angular testing environment.
23 | getTestBed().initTestEnvironment(
24 | BrowserDynamicTestingModule,
25 | platformBrowserDynamicTesting()
26 | );
27 | // Then we find all the tests.
28 | let context = require.context('./', true, /\.spec\.ts/);
29 | // And load the modules.
30 | context.keys().map(context);
31 | // Finally, start Karma to run the tests.
32 | __karma__.start();
33 |
--------------------------------------------------------------------------------
/code/SeCoApi/utility/paramChecker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 18.07.2016.
3 | */
4 | var RpcJsonResponseBuilder = require('./rpcJsonResponseBuilder');
5 |
6 | function ParamChecker(){
7 | }
8 |
9 | ParamChecker.prototype.containsParameter = function (params, req, res){
10 | var allParamsOk = true;
11 | //if params empty no params required
12 | if(!params){
13 | return allParamsOk;
14 | }
15 | for(var i = 0;i {
7 | beforeEach(() => {
8 | TestBed.configureTestingModule({
9 | declarations: [
10 | AppComponent
11 | ],
12 | });
13 | });
14 |
15 | it('should create the app', async(() => {
16 | let fixture = TestBed.createComponent(AppComponent);
17 | let app = fixture.debugElement.componentInstance;
18 | expect(app).toBeTruthy();
19 | }));
20 |
21 | it(`should have as title 'app works!'`, async(() => {
22 | let fixture = TestBed.createComponent(AppComponent);
23 | let app = fixture.debugElement.componentInstance;
24 | expect(app.title).toEqual('app works!');
25 | }));
26 |
27 | it('should render title in a h1 tag', async(() => {
28 | let fixture = TestBed.createComponent(AppComponent);
29 | fixture.detectChanges();
30 | let compiled = fixture.debugElement.nativeElement;
31 | expect(compiled.querySelector('h1').textContent).toContain('app works!');
32 | }));
33 | });
34 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/serviceSelection/serviceSelection.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"serviceSelection.component.js","sourceRoot":"","sources":["serviceSelection.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAwB,eAAe,CAAC,CAAA;AACxC,uBAAqB,iBAAiB,CAAC,CAAA;AAEvC,sBAA2B,oBAAoB,CAAC,CAAA;AAShD;IAGI,mCAAoB,MAAc,EAAU,YAA0B;QAAlD,WAAM,GAAN,MAAM,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAF9D,aAAQ,GAAc,EAAE,CAAC;QAG7B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,gDAAY,GAAZ;QACI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,oBAAoB;SAChC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;YACf,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,qBAAqB;SACjC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,wBAAwB;SACpC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,sBAAsB;SAClC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,oBAAoB;SAChC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kBAAkB;SAC9B,CAAC;IACN,CAAC;IAtCL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,iCAAiC;SACjD,CAAC;;iCAAA;IAmCF,gCAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,iCAAyB,4BAiCrC,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/login/login.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"login.component.js","sourceRoot":"","sources":["login.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAkC,eAAe,CAAC,CAAA;AAClD,uBAAuB,iBAAiB,CAAC,CAAA;AAEzC,sBAAoD,oBAAoB,CAAC,CAAA;AAOzE;IAII,wBACY,MAAc,EACd,qBAA4C,EAC5C,YAA0B;QAF1B,WAAM,GAAN,MAAM,CAAQ;QACd,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iBAAY,GAAZ,YAAY,CAAc;QANtC,UAAK,GAAQ,EAAE,CAAC;QAChB,YAAO,GAAG,KAAK,CAAC;IAK0B,CAAC;IAE3C,iCAAQ,GAAR;QACI,qBAAqB;QACrB,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAED,8BAAK,GAAL;QAAA,iBAgBC;QAfG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrE,SAAS,CACN,UAAA,IAAI;YACA,EAAE,CAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACT,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;QACL,CAAC,EACD,UAAA,KAAK;YACD,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACf,CAAC;IAnCL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,sBAAsB;SACtC,CAAC;;sBAAA;IAiCF,qBAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,sBAAc,iBA+B1B,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/styles.css:
--------------------------------------------------------------------------------
1 | /* You can add global styles to this file, and also import other style files */
2 | /*@import '~@angular/material/core/theming/prebuilt/deeppurple-amber.css';*/
3 | body{
4 | margin: 0px;
5 | }
6 |
7 | a {
8 | cursor: pointer;
9 | }
10 |
11 | .help-block {
12 | font-size: 12px;
13 | }
14 |
15 | .registerCard {
16 | max-width: 800px;
17 | }
18 |
19 | .alert {
20 | padding: 1rem;
21 | margin-bottom: 1rem;
22 | border: 1px solid transparent;
23 | border-radius: 5px; }
24 |
25 | .alert-heading {
26 | color: inherit; }
27 |
28 | .alert-link {
29 | font-weight: bold; }
30 |
31 | .alert-dismissible {
32 | padding-right: 2rem; }
33 | .alert-dismissible .close {
34 | position: relative;
35 | top: -.125rem;
36 | right: -1rem;
37 | color: inherit; }
38 |
39 | .alert-success {
40 | background-color: #dff0d8;
41 | border-color: #d0e9c6;
42 | color: #3c763d; }
43 | .alert-success hr {
44 | border-top-color: #c1e2b3; }
45 | .alert-success .alert-link {
46 | color: #2b542c; }
47 |
48 | .alert-info {
49 | background-color: #d9edf7;
50 | border-color: #bcdff1;
51 | color: #31708f; }
52 | .alert-info hr {
53 | border-top-color: #a6d5ec; }
54 | .alert-info .alert-link {
55 | color: #245269; }
56 |
--------------------------------------------------------------------------------
/code/SeCoApi/json/githubRoutes.json:
--------------------------------------------------------------------------------
1 | {
2 | "service_name": "GITHUB",
3 | "grpc_ip": "localhost",
4 | "grpc_port": 50056,
5 | "grpc_service_name": "VersionControl",
6 | "grpc_package_name": "versionControl",
7 | "authentication_type": "OAUTH2",
8 | "requests": [
9 | {
10 | "http-method": "get",
11 | "route": "/github/repositories",
12 | "grpc_function": "getRepositories",
13 | "response_parameter": [
14 | "repos"
15 | ],
16 | "notification": false
17 | },
18 | {
19 | "http-method": "get",
20 | "route": "/github/:repository/filetree",
21 | "query_parameter": [
22 | "path",
23 | "repository"
24 | ],
25 | "grpc_function": "getRepositoryContent",
26 | "response_parameter": [
27 | "dirs"
28 | ],
29 | "notification": false
30 | },
31 | {
32 | "http-method": "post",
33 | "route": "/github/:repository/share",
34 | "query_parameter": [
35 | "repository",
36 | "usernameToAdd"
37 | ],
38 | "grpc_function": "addUserToRepository",
39 | "response_parameter": [
40 | "status"
41 | ],
42 | "notification": true,
43 | "message": "shared Repository"
44 | }
45 | ]
46 | }
--------------------------------------------------------------------------------
/code/SeCoApi/json/bitBucketRoutes.json:
--------------------------------------------------------------------------------
1 | {
2 | "service_name": "BITBUCKET",
3 | "grpc_ip": "localhost",
4 | "grpc_port": 50071,
5 | "grpc_service_name": "VersionControl",
6 | "grpc_package_name": "versionControl",
7 | "authentication_type": "OAUTH2",
8 | "requests": [
9 | {
10 | "http-method": "get",
11 | "route": "/bitbucket/repositories",
12 | "grpc_function": "getRepositories",
13 | "response_parameter": [
14 | "repos"
15 | ],
16 | "notification": false
17 | },
18 | {
19 | "http-method": "get",
20 | "route": "/bitbucket/:repository/filetree",
21 | "query_parameter": [
22 | "path",
23 | "repository"
24 | ],
25 | "grpc_function": "getRepositoryContent",
26 | "response_parameter": [
27 | "dirs"
28 | ],
29 | "notification": false
30 | },
31 | {
32 | "http-method": "post",
33 | "route": "/bitbucket/:repository/share",
34 | "query_parameter": [
35 | "repository",
36 | "usernameToAdd"
37 | ],
38 | "grpc_function": "addUserToRepository",
39 | "response_parameter": [
40 | "status"
41 | ],
42 | "notification": true,
43 | "message": "shared Repository"
44 | }
45 | ]
46 | }
--------------------------------------------------------------------------------
/code/SeCoApi/proto/seCoFileStorage.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package seCoFileStorage;
4 |
5 | // The rpc FileStorage service definition.
6 | service SeCoFileStorage {
7 | // Gets a file
8 | rpc GetFile (GetFileRequest) returns (stream GetFileReply) {
9 | }
10 |
11 | rpc GetFileTree (GetFileTreeRequest) returns (GetFileTreeReply) {
12 | }
13 |
14 | rpc UploadFile (stream UploadFileRequest) returns (UploadFileResponse) {
15 | }
16 | }
17 |
18 | message Error {
19 | string msg = 1;
20 | int32 code = 2;
21 | }
22 |
23 | // The request message
24 | message GetFileRequest {
25 | string teamName = 1;
26 | string filePath = 2;
27 | }
28 |
29 | // The response message
30 | message GetFileReply {
31 | bytes chunk = 1;
32 | Error err = 2;
33 | }
34 |
35 | // The request message
36 | message GetFileTreeRequest {
37 | string teamName = 1;
38 | string filePath = 2;
39 | }
40 |
41 | // The response message
42 | message GetFileTreeReply {
43 | string dirs = 1;
44 | Error err = 2;
45 | }
46 |
47 | // The request message
48 | message UploadFileRequest {
49 | bytes chunk = 1;
50 | Error err = 2;
51 | }
52 |
53 | // The response message
54 | message UploadFileResponse {
55 | string status = 1;
56 | Error err = 2;
57 | }
58 |
--------------------------------------------------------------------------------
/code/SeCoApi/json/slackRoutes.json:
--------------------------------------------------------------------------------
1 | {
2 | "service_name": "SLACK",
3 | "grpc_ip": "localhost",
4 | "grpc_port": 50048,
5 | "grpc_service_name": "SlackMessaging",
6 | "grpc_package_name": "slackMessaging",
7 | "authentication_type": "OAUTH2",
8 | "requests": [
9 | {
10 | "http-method": "get",
11 | "route": "/slack/channelList",
12 | "grpc_function": "getChannelList",
13 | "response_parameter": [
14 | "channels"
15 | ],
16 | "notification": false
17 | },
18 | {
19 | "http-method": "get",
20 | "route": "/slack/:channel/messages",
21 | "query_parameter": [
22 | "channel",
23 | "oldest"
24 | ],
25 | "grpc_function": "getChannelMessages",
26 | "response_parameter": [
27 | "messages",
28 | "timeStampOfLastMsg"
29 | ],
30 | "notification": false
31 | },
32 | {
33 | "http-method": "post",
34 | "route": "/slack/:channel/message",
35 | "query_parameter": [
36 | "channel",
37 | "message",
38 | "as_user"
39 | ],
40 | "grpc_function": "sendMessage",
41 | "response_parameter": [
42 | "status"
43 | ],
44 | "notification": true,
45 | "message": "new message sent"
46 | }
47 | ]
48 | }
--------------------------------------------------------------------------------
/code/SeCoFileStorage/proto/seCoFileStorage.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package seCoFileStorage;
4 |
5 | // The rpc FileStorage service definition.
6 | service SeCoFileStorage {
7 | // Gets a file
8 | rpc GetFile (GetFileRequest) returns (stream GetFileReply) {
9 | }
10 |
11 | rpc GetFileTree (GetFileTreeRequest) returns (GetFileTreeReply) {
12 | }
13 |
14 | rpc UploadFile (stream UploadFileRequest) returns (UploadFileResponse) {
15 | }
16 | }
17 |
18 | message Error {
19 | string msg = 1;
20 | int32 code = 2;
21 | }
22 |
23 | // The request message
24 | message GetFileRequest {
25 | string teamName = 1;
26 | string filePath = 2;
27 | }
28 |
29 | // The response message
30 | message GetFileReply {
31 | bytes chunk = 1;
32 | Error err = 2;
33 | }
34 |
35 | // The request message
36 | message GetFileTreeRequest {
37 | string teamName = 1;
38 | string filePath = 2;
39 | }
40 |
41 | // The response message
42 | message GetFileTreeReply {
43 | string dirs = 1;
44 | Error err = 2;
45 | }
46 |
47 | // The request message
48 | message UploadFileRequest {
49 | bytes chunk = 1;
50 | Error err = 2;
51 | }
52 |
53 | // The response message
54 | message UploadFileResponse {
55 | string status = 1;
56 | Error err = 2;
57 | }
58 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/userArea.component.ts:
--------------------------------------------------------------------------------
1 | import {Component} from '@angular/core';
2 |
3 | import {UserService} from '../_services/index';
4 | import {User} from '../_models/index';
5 | import {AuthSettingsComponent} from "../auth-settings/auth-settings.component";
6 | import {ViewContainerRef} from '@angular/core';
7 | import {MdDialog, MdDialogRef, MdDialogConfig} from '@angular/material';
8 |
9 |
10 | @Component({
11 | selector: 'userArea',
12 | templateUrl: 'userArea.component.html'
13 | })
14 |
15 | export class UserAreaComponent {
16 | currentUser: User;
17 | dialogRef: MdDialogRef;
18 | lastCloseResult: string;
19 | config: MdDialogConfig;
20 |
21 | constructor(private userService: UserService, public dialog: MdDialog, public viewContainerRef: ViewContainerRef) {
22 | this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
23 | this.config = {
24 | role: 'dialog',
25 | viewContainerRef: this.viewContainerRef
26 | };
27 | }
28 |
29 | openAuthSettingsDialog() {
30 | this.dialogRef = this.dialog.open(AuthSettingsComponent, this.config);
31 | this.dialogRef.afterClosed().subscribe(result => {
32 | this.lastCloseResult = result;
33 | this.dialogRef = null;
34 | });
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/register/register.component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"register.component.js","sourceRoot":"","sources":["register.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAA0B,eAAe,CAAC,CAAA;AAC1C,uBAAuB,iBAAiB,CAAC,CAAA;AAEzC,sBAA0C,oBAAoB,CAAC,CAAA;AAO/D;IAII,2BACY,MAAc,EACd,WAAwB,EACxB,YAA0B;QAF1B,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QANtC,UAAK,GAAQ,EAAE,CAAC;QAChB,YAAO,GAAG,KAAK,CAAC;IAK0B,CAAC;IAI3C,oCAAQ,GAAR;QAAA,iBAoBC;QAnBG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aAC9B,SAAS,CACN,UAAA,IAAI;YACA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,cAAc,GAAG,IAAI,CAAC;YAC1B,EAAE,CAAA,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA,CAAC;gBACnB,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACjD,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;gBAC3D,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,CAAC;QACL,CAAC,EACD,UAAA,KAAK;YACD,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACf,CAAC;IApCL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,yBAAyB;SACzC,CAAC;;yBAAA;IAkCF,wBAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCY,yBAAiB,oBAgC7B,CAAA"}
--------------------------------------------------------------------------------
/code/Frontend/cliProject/README.md:
--------------------------------------------------------------------------------
1 | # CliProject
2 |
3 | This project was generated with [angular-cli](https://github.com/angular/angular-cli) version 1.0.0-beta.21.
4 |
5 | ## Development server
6 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
7 |
8 | ## Code scaffolding
9 |
10 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class`.
11 |
12 | ## Build
13 |
14 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
15 |
16 | ## Running unit tests
17 |
18 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
19 |
20 | ## Running end-to-end tests
21 |
22 | Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
23 | Before running the tests make sure you are serving the app via `ng serve`.
24 |
25 | ## Deploying to Github Pages
26 |
27 | Run `ng github-pages:deploy` to deploy to Github Pages.
28 |
29 | ## Further help
30 |
31 | To get more help on the `angular-cli` use `ng --help` or go check out the [Angular-CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
32 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration file, see link for more information
2 | // https://karma-runner.github.io/0.13/config/configuration-file.html
3 |
4 | module.exports = function (config) {
5 | config.set({
6 | basePath: '',
7 | frameworks: ['jasmine', 'angular-cli'],
8 | plugins: [
9 | require('karma-jasmine'),
10 | require('karma-chrome-launcher'),
11 | require('karma-remap-istanbul'),
12 | require('angular-cli/plugins/karma')
13 | ],
14 | files: [
15 | { pattern: './src/test.ts', watched: false }
16 | ],
17 | preprocessors: {
18 | './src/test.ts': ['angular-cli']
19 | },
20 | mime: {
21 | 'text/x-typescript': ['ts','tsx']
22 | },
23 | remapIstanbulReporter: {
24 | reports: {
25 | html: 'coverage',
26 | lcovonly: './coverage/coverage.lcov'
27 | }
28 | },
29 | angularCli: {
30 | config: './angular-cli.json',
31 | environment: 'dev'
32 | },
33 | reporters: config.angularCli && config.angularCli.codeCoverage
34 | ? ['progress', 'karma-remap-istanbul']
35 | : ['progress'],
36 | port: 9876,
37 | colors: true,
38 | logLevel: config.LOG_INFO,
39 | autoWatch: true,
40 | browsers: ['Chrome'],
41 | singleRun: false
42 | });
43 | };
44 |
--------------------------------------------------------------------------------
/code/SeCoApi/proto/teamManagement.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package teamManagement;
4 |
5 | // The rpc FileStorage service definition.
6 | service TeamManagement {
7 | rpc Create (CreateRequest) returns (CreateReply) {}
8 |
9 | rpc Join (JoinRequest) returns (JoinReply) {}
10 |
11 | rpc AddServices (AddServicesRequest) returns (AddServicesReply) {}
12 |
13 | rpc List (ListRequest) returns (ListReply) {}
14 | }
15 |
16 | //service types enum
17 | enum ServiceType {
18 | GITHUB = 0;
19 | DROPBOX = 1;
20 | BITBUCKET = 2;
21 | GOOGLE = 3;
22 | SLACK = 4;
23 | }
24 |
25 | message CreateRequest {
26 | string team = 1; //as name
27 | string password = 2;
28 | string teamCreator = 3;
29 | }
30 |
31 | message CreateReply {
32 | string status = 1;
33 | string err = 2;
34 | }
35 |
36 | message JoinRequest {
37 | string team = 1; //as name
38 | string password = 2;
39 | string username = 3;
40 | }
41 |
42 | message JoinReply {
43 | string status = 1;
44 | string err = 2;
45 | }
46 |
47 |
48 | message ListRequest {
49 | string username = 1;
50 | }
51 |
52 | message ListReply {
53 | string teamList =1;
54 | string err = 2;
55 | }
56 |
57 | message AddServicesRequest {
58 | string team = 1; //as name
59 | repeated ServiceType services = 2;
60 | }
61 |
62 | message AddServicesReply {
63 | string status =1;
64 | string err = 2;
65 | }
66 |
67 |
--------------------------------------------------------------------------------
/code/Github/proto/versionControl.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package versionControl;
4 |
5 | // The rpc VersionControl service definition.
6 | service VersionControl {
7 | // Gets a file
8 | rpc GetRepositories (GetReposRequest) returns (GetReposReply) {}
9 |
10 | rpc GetRepositoryContent (GetRepoContenRequest) returns (GetRepoContentReply) {}
11 |
12 | rpc addUserToRepository (AddUserToRepoRequest) returns (AddUserToRepoResponse) {}
13 | }
14 |
15 | //Auth message
16 | message Authentication {
17 | string token = 1; //auth string,for example user:password or Bearer XXXXX
18 | AuthenticationType type = 2;
19 | }
20 |
21 | //Auth types enum
22 | enum AuthenticationType {
23 | BASIC = 0;
24 | OAUTH2 = 1;
25 | }
26 |
27 |
28 | message GetReposRequest {
29 | Authentication auth = 2;
30 | }
31 |
32 |
33 | message GetReposReply {
34 | string repos = 1; //JSON String
35 | string err = 2;
36 | }
37 |
38 |
39 | message GetRepoContenRequest {
40 | string path = 1;
41 | Authentication auth = 2;
42 | string repository = 3;
43 | }
44 |
45 |
46 | message GetRepoContentReply {
47 | string dirs = 1;
48 | string err = 2;
49 | }
50 |
51 |
52 | message AddUserToRepoRequest {
53 | string repository = 1;
54 | string usernameToAdd = 2;
55 | Authentication auth = 3;
56 | }
57 |
58 |
59 | message AddUserToRepoResponse {
60 | string status = 1;
61 | string err = 2;
62 | }
63 |
--------------------------------------------------------------------------------
/code/SeCoApi/proto/versionControl.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package versionControl;
4 |
5 | // The rpc VersionControl service definition.
6 | service VersionControl {
7 | // Gets a file
8 | rpc GetRepositories (GetReposRequest) returns (GetReposReply) {}
9 |
10 | rpc GetRepositoryContent (GetRepoContenRequest) returns (GetRepoContentReply) {}
11 |
12 | rpc addUserToRepository (AddUserToRepoRequest) returns (AddUserToRepoResponse) {}
13 | }
14 |
15 | //Auth message
16 | message Authentication {
17 | string token = 1; //auth string,for example user:password or Bearer XXXXX
18 | AuthenticationType type = 2;
19 | }
20 |
21 | //Auth types enum
22 | enum AuthenticationType {
23 | BASIC = 0;
24 | OAUTH2 = 1;
25 | }
26 |
27 |
28 | message GetReposRequest {
29 | Authentication auth = 2;
30 | }
31 |
32 |
33 | message GetReposReply {
34 | string repos = 1; //JSON String
35 | string err = 2;
36 | }
37 |
38 |
39 | message GetRepoContenRequest {
40 | string path = 1;
41 | Authentication auth = 2;
42 | string repository = 3;
43 | }
44 |
45 |
46 | message GetRepoContentReply {
47 | string dirs = 1;
48 | string err = 2;
49 | }
50 |
51 |
52 | message AddUserToRepoRequest {
53 | string repository = 1;
54 | string usernameToAdd = 2;
55 | Authentication auth = 3;
56 | }
57 |
58 |
59 | message AddUserToRepoResponse {
60 | string status = 1;
61 | string err = 2;
62 | }
63 |
--------------------------------------------------------------------------------
/code/Bitbucket/proto/versionControl.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package versionControl;
4 |
5 | // The rpc VersionControl service definition.
6 | service VersionControl {
7 | // Gets a file
8 | rpc GetRepositories (GetReposRequest) returns (GetReposReply) {}
9 |
10 | rpc GetRepositoryContent (GetRepoContenRequest) returns (GetRepoContentReply) {}
11 |
12 | rpc addUserToRepository (AddUserToRepoRequest) returns (AddUserToRepoResponse) {}
13 | }
14 |
15 | //Auth message
16 | message Authentication {
17 | string token = 1; //auth string,for example user:password or Bearer XXXXX
18 | AuthenticationType type = 2;
19 | }
20 |
21 | //Auth types enum
22 | enum AuthenticationType {
23 | BASIC = 0;
24 | OAUTH2 = 1;
25 | }
26 |
27 |
28 | message GetReposRequest {
29 | Authentication auth = 2;
30 | }
31 |
32 |
33 | message GetReposReply {
34 | string repos = 1; //JSON String
35 | string err = 2;
36 | }
37 |
38 |
39 | message GetRepoContenRequest {
40 | string path = 1;
41 | Authentication auth = 2;
42 | string repository = 3;
43 | }
44 |
45 |
46 | message GetRepoContentReply {
47 | string dirs = 1;
48 | string err = 2;
49 | }
50 |
51 |
52 | message AddUserToRepoRequest {
53 | string repository = 1;
54 | string usernameToAdd = 2;
55 | Authentication auth = 3;
56 | }
57 |
58 |
59 | message AddUserToRepoResponse {
60 | string status = 1;
61 | string err = 2;
62 | }
63 |
--------------------------------------------------------------------------------
/code/rabbitMqTest/rpc_client.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 11.07.2016.
3 | */
4 |
5 | var amqp = require('amqplib/callback_api');
6 |
7 | var args = process.argv.slice(2);
8 |
9 | if (args.length == 0) {
10 | console.log("Usage: rpc_client.js num");
11 | process.exit(1);
12 | }
13 |
14 | amqp.connect('amqp://localhost', function(err, conn) {
15 | conn.createChannel(function(err, ch) {
16 | ch.assertQueue('', {exclusive: true}, function(err, q) {
17 | var corr = generateUuid();
18 | var num = parseInt(args[0]);
19 | var jsonMsg = {
20 | num: num,text: 'yolo'
21 | };
22 | console.log(' [x] Requesting fib(%d)', num);
23 |
24 | ch.consume(q.queue, function(msg) {
25 | if (msg.properties.correlationId == corr) {
26 | console.log(' [.] Got %s', msg.content.toString());
27 | setTimeout(function() { conn.close(); process.exit(0) }, 500);
28 | }
29 | }, {noAck: true});
30 |
31 | ch.sendToQueue('rpc_queue',
32 | new Buffer(JSON.stringify(jsonMsg)),
33 | { correlationId: corr, replyTo: q.queue,yolo:'yolo' });
34 | });
35 | });
36 | });
37 |
38 | function generateUuid() {
39 | return Math.random().toString() +
40 | Math.random().toString() +
41 | Math.random().toString();
42 | }
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_services/user.service.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"user.service.js","sourceRoot":"","sources":["user.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAA2B,eAAe,CAAC,CAAA;AAC3C,qBAAwD,eAAe,CAAC,CAAA;AACxE,2BAA6B,iBAAiB,CAAC,CAAA;AAC/C,QAAO,yBAAyB,CAAC,CAAA;AACjC,QAAO,2BAA2B,CAAC,CAAA;AAKnC;IACI,qBAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAI,CAAC;IAEnC,4BAAM,GAAN,UAAO,IAAU;QACb,IAAI,OAAO,GAAG,IAAI,cAAO,EAAE,CAAC;QAE5B,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,uBAAuB;QAEvB,IAAI,OAAO,GAAG,IAAI,qBAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;QAEtD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,EAAC,EAAE,EAAE,OAAO,CAAC;aACvE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;aACtB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAEO,iCAAW,GAAnB,UAAqB,KAAqB;QACtC,oEAAoE;QACpE,IAAI,MAAc,CAAC;QACnB,EAAE,CAAC,CAAC,KAAK,YAAY,eAAQ,CAAC,CAAC,CAAC;YAC5B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAM,KAAK,CAAC,MAAM,YAAM,KAAK,CAAC,UAAU,IAAI,EAAE,UAAI,GAAK,CAAC;QAClE,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IA7BL;QAAC,iBAAU,EAAE;;mBAAA;IA8Bb,kBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,mBAAW,cA6BvB,CAAA"}
--------------------------------------------------------------------------------
/code/TeamManagement/proto/teamManagement.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package teamManagement;
4 |
5 | // The rpc FileStorage service definition.
6 | service TeamManagement {
7 | rpc Create (CreateRequest) returns (CreateReply) {}
8 |
9 | rpc Join (JoinRequest) returns (JoinReply) {}
10 |
11 | rpc AddServices (AddServicesRequest) returns (AddServicesReply) {}
12 |
13 | rpc List (ListRequest) returns (ListReply) {}
14 | }
15 |
16 | //service types enum
17 | enum ServiceType {
18 | GITHUB = 0;
19 | DROPBOX = 1;
20 | BITBUCKET = 2;
21 | GOOGLE = 3;
22 | SLACK = 4;
23 | }
24 |
25 | message CreateRequest {
26 | string team = 1; //as name
27 | string password = 2;
28 | string teamCreator = 3;
29 | }
30 |
31 | message CreateReply {
32 | string status = 1;
33 | string err = 2;
34 | }
35 |
36 | message JoinRequest {
37 | string team = 1; //as name
38 | string password = 2;
39 | string username = 3;
40 | }
41 |
42 | message JoinReply {
43 | string status = 1;
44 | string err = 2;
45 | }
46 |
47 |
48 | message ListRequest {
49 | string username = 1;
50 | }
51 |
52 | message ListReply {
53 | string teamList =1;
54 | string err = 2;
55 | }
56 |
57 | message AddServicesRequest {
58 | string team = 1; //as name
59 | repeated ServiceType services = 2;
60 | }
61 |
62 | message AddServicesReply {
63 | string status =1;
64 | string err = 2;
65 | }
66 |
67 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/material2-app-theme.scss:
--------------------------------------------------------------------------------
1 | @import '~@angular/material/core/theming/all-theme';
2 |
3 | // NOTE: Theming is currently experimental and not yet publically released!
4 |
5 | @include md-core();
6 |
7 |
8 | /*
9 | $primary: md-palette($md-teal, 500, 100, 700);
10 | $accent: md-palette($md-purple, 500, 300,800);
11 | $warn: md-palette($md-red, 500, 300, 900);
12 | $background: md-palette($md-grey, 500, 0, 600);
13 | */
14 |
15 | $primary: md-palette($md-indigo, 700, 100, 500);
16 | $primaryHue: md-palette($md-indigo, 100);
17 | $accent: md-palette($md-pink, A200, A100,A400);
18 | $warn: md-palette($md-red, 500, 300, 900);
19 | $background: md-palette($md-grey, 100, 50, 200);
20 |
21 | $theme: md-light-theme($primary, $accent);
22 |
23 | @include angular-material-theme($theme);
24 |
25 | .m2app-dark {
26 | $dark-primary: md-palette($md-pink, 700, 500, 900);
27 | $dark-accent: md-palette($md-blue-grey, A200, A100, A400);
28 | $dark-warn: md-palette($md-deep-orange);
29 |
30 | $dark-theme: md-dark-theme($dark-primary, $dark-accent, $dark-warn);
31 |
32 | @include angular-material-theme($dark-theme);
33 | }
34 |
35 | // Use md-color to extract individual colors from a palette as necessary.
36 | .register-toolbar{
37 | background-color: md-color($primaryHue);
38 | }
39 |
40 | .bgEven{
41 | background-color: md-color($background,50);
42 | }
43 |
44 | .bgUnEven{
45 | background-color: md-color($background,200);
46 | }
47 |
--------------------------------------------------------------------------------
/code/SeCoApi/json/seCoFileStorage.json:
--------------------------------------------------------------------------------
1 | {
2 | "service_name": "SECOFILESTORAGE",
3 | "grpc_ip": "localhost",
4 | "grpc_port": 50040,
5 | "grpc_service_name": "SeCoFileStorage",
6 | "grpc_package_name": "seCoFileStorage",
7 | "authentication_type": "",
8 | "requests": [
9 | {
10 | "http-method": "get",
11 | "route": "/filestorage/file",
12 | "query_parameter": [
13 | "filePath",
14 | "teamName"
15 | ],
16 | "grpc_function": "getFile",
17 | "response_parameter": [
18 | "fileName",
19 | "fileBuffer"
20 | ],
21 | "notification": false
22 | },
23 | {
24 | "http-method": "get",
25 | "route": "/filestorage/filetree",
26 | "query_parameter": [
27 | "filePath",
28 | "teamName"
29 | ],
30 | "grpc_function": "getFileTree",
31 | "response_parameter": [
32 | "dirs"
33 | ],
34 | "notification": false
35 | },
36 | {
37 | "http-method": "put",
38 | "route": "/filestorage/file",
39 | "query_parameter": [
40 | "filePath",
41 | "serviceName",
42 | "teamName"
43 | ],
44 | "grpc_function": "uploadFile",
45 | "reserved_parameter": [
46 | "userName",
47 | "fileName",
48 | "fileBuffer"
49 | ],
50 | "response_parameter": [
51 | "status"
52 | ],
53 | "notification": true,
54 | "message": "new file uploaded"
55 | }
56 | ]
57 | }
--------------------------------------------------------------------------------
/code/SeCoApi/MsgBroker/MsgBroker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 21.07.16.
3 | * Class serves as "interface" to be able to use different network communication
4 | * for possible future changes
5 | */
6 | var winston = require('winston');
7 | var RabbitMq = require('./rabbitMq');
8 | nconf = require('nconf');
9 |
10 | function MsgBroker(msgBrokerType,serverIp,serverPort){
11 | this.msgBrokerType = msgBrokerType;
12 |
13 | switch(this.msgBrokerType){
14 | case msgBrokerType.RABBITMQ:
15 | this.implementation = new RabbitMq(serverIp,serverPort);
16 | break;
17 | default:
18 | this.implementation = new RabbitMq(serverIp,serverPort);
19 | }
20 |
21 | }
22 |
23 | MsgBroker.prototype.sendData = function (sendOptions,data,callback){
24 | if(!typeof this.implementation.sendData == 'function') {
25 | winston.log('error', 'sendData not implemented by super class');
26 | return callback(null, null);
27 | } else {
28 | this.implementation.sendData(sendOptions,data,callback);
29 | }
30 | };
31 |
32 | MsgBroker.prototype.getFile = function (options,path,auth,callback){
33 | if(!typeof this.implementation.getFile == 'function') {
34 | winston.log('error', 'getFile not implemented by super class');
35 | return callback(null, null);
36 | } else {
37 | this.implementation.getFile(options.queueName,path,auth,callback);
38 | }
39 | };
40 |
41 |
42 | module.exports = MsgBroker;
43 |
44 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/join-team/join-team.component.ts:
--------------------------------------------------------------------------------
1 | import {Component} from '@angular/core';
2 | import {TeamService} from '../_services/index';
3 | import {Team} from "../_models/team";
4 | import {MdDialog} from '@angular/material';
5 | import {NotificationsService} from 'angular2-notifications/lib/notifications.service';
6 | import {Response} from "@angular/http";
7 |
8 | @Component({
9 | selector: 'app-join-team',
10 | templateUrl: './join-team.component.html',
11 | styleUrls: ['./join-team.component.scss']
12 | })
13 | export class JoinTeamComponent {
14 | model: any = {};
15 | loading: boolean;
16 |
17 | constructor(private teamService: TeamService, private notService: NotificationsService, public dialog: MdDialog) {
18 | }
19 |
20 | joinTeam() {
21 | var team = new Team(this.model.teamName, this.model.password);
22 | this.loading = true;
23 | this.teamService.joinTeam(team.teamName, team.password)
24 | .subscribe(
25 | data => {
26 | if (data instanceof Response) {
27 | data = data.json();
28 | this.loading = false;
29 | if (data.ok) {
30 | this.notService.success('Team joined!', '');
31 | this.dialog.closeAll();
32 | } else {
33 | this.notService.error('Team join failed', data.errorMsg);
34 | }
35 | }
36 | },
37 | error => {
38 | this.loading = false;
39 | this.notService.error('Team join error', error);
40 | });
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/join-team/join-team.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Join Team
4 |
5 |
6 | account_circle
7 |
10 |
11 |
12 |
13 | lock
14 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/angular-cli.json:
--------------------------------------------------------------------------------
1 | {
2 | "project": {
3 | "version": "1.0.0-beta.21",
4 | "name": "Service-Compoisition"
5 | },
6 | "apps": [
7 | {
8 | "root": "src",
9 | "outDir": "dist",
10 | "assets": [
11 | "assets",
12 | "favicon.ico"
13 | ],
14 | "index": "index.html",
15 | "main": "main.ts",
16 | "test": "test.ts",
17 | "tsconfig": "tsconfig.json",
18 | "prefix": "app",
19 | "mobile": false,
20 | "styles": [
21 | "styles.css",
22 | "layout-attributes.scss",
23 | "material2-app-theme.scss",
24 | "ng2-material.css",
25 | "font.css"
26 | ],
27 | "scripts": [
28 | ],
29 | "environments": {
30 | "source": "environments/environment.ts",
31 | "dev": "environments/environment.ts",
32 | "prod": "environments/environment.prod.ts"
33 | }
34 | }
35 | ],
36 | "addons": [
37 | ],
38 | "packages": [
39 | ],
40 | "e2e": {
41 | "protractor": {
42 | "config": "./protractor.conf.js"
43 | }
44 | },
45 | "test": {
46 | "karma": {
47 | "config": "./karma.conf.js"
48 | }
49 | },
50 | "defaults": {
51 | "styleExt": "scss",
52 | "prefixInterfaces": false,
53 | "inline": {
54 | "style": false,
55 | "template": false
56 | },
57 | "spec": {
58 | "class": false,
59 | "component": true,
60 | "directive": true,
61 | "module": false,
62 | "pipe": true,
63 | "service": true
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/code/TeamManagement/db/models/Team.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 24.08.16.
3 | */
4 | // Load mongoose package
5 | var mongoose = require('mongoose'),
6 | bcrypt = require('bcrypt'),
7 | SALT_WORK_FACTOR = 10;
8 |
9 | // Create a schema
10 | var TeamSchema = new mongoose.Schema({
11 | teamName: {type: String, required: true, index: {unique: true}},
12 | password: {type: String, required: true},
13 | teamCreator: {type: String, required: true},
14 | members: {type: Array},
15 | services: {type: Array} // JSON String with service name
16 | });
17 |
18 | TeamSchema.pre('save', function (next) {
19 | var team = this;
20 |
21 | // only hash the password if it has been modified (or is new)
22 | if (!team.isModified('password')) return next();
23 |
24 | // generate a salt
25 | bcrypt.genSalt(SALT_WORK_FACTOR, function (err, salt) {
26 | if (err) return next(err);
27 |
28 | // hash the password using our new salt
29 | bcrypt.hash(team.password, salt, function (err, hash) {
30 | if (err) return next(err);
31 |
32 | // override the cleartext password with the hashed one
33 | team.password = hash;
34 | next();
35 | });
36 | });
37 | });
38 |
39 | TeamSchema.methods.comparePassword = function (candidatePassword, callback) {
40 | bcrypt.compare(candidatePassword, this.password, function (err, isMatch) {
41 | if (err) return callback(err);
42 | callback(null, isMatch);
43 | });
44 | };
45 |
46 | module.exports = mongoose.model('Team', TeamSchema);
--------------------------------------------------------------------------------
/code/SeCoApi/proto/slackMessaging.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package slackMessaging;
4 |
5 | service SlackMessaging {
6 | rpc GetChannelList (GetChannelListRequest) returns (GetChannelListReply) {}
7 |
8 | rpc GetChannelMessages (GetChannelMessagesRequest) returns (GetChannelMessagesReply) {}
9 |
10 | rpc SendMessage (SendMessageRequest) returns (SendMessageReply) {}
11 | }
12 |
13 | //Auth message
14 | message Authentication {
15 | string token = 1; //auth string,for example user:password or Bearer XXXXX
16 | AuthenticationType type = 2;
17 | }
18 |
19 | //Auth types enum
20 | enum AuthenticationType {
21 | BASIC = 0;
22 | OAUTH2 = 1;
23 | }
24 |
25 | // The request message
26 | message GetChannelListRequest {
27 | Authentication auth = 2;
28 | }
29 |
30 | // The response message
31 | message GetChannelListReply {
32 | string channels = 1;
33 | string err = 3;
34 | }
35 |
36 | // The request message
37 | message GetChannelMessagesRequest {
38 | string channel = 1; //as Id
39 | string oldest = 2; //timestamp of oldest msg
40 | Authentication auth = 3;
41 | }
42 |
43 | // The response message
44 | message GetChannelMessagesReply {
45 | string messages = 1;
46 | string timeStampOfLastMsg = 2;
47 | string err = 3;
48 | }
49 |
50 | // The request message
51 | message SendMessageRequest {
52 | string channel = 1; //as Id
53 | string message = 2;
54 | string as_user = 3; //if false,message sender is bot
55 | Authentication auth = 4;
56 | }
57 |
58 | // The response message
59 | message SendMessageReply {
60 | string status = 1;
61 | string err = 2;
62 | }
63 |
--------------------------------------------------------------------------------
/code/SeCoApi/utility/secoBasicAuth.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 28.09.16.
3 | */
4 | var auth = require('basic-auth'),
5 | grpc = require('grpc'),
6 | nconf = require('nconf'),
7 | winston = require('winston');
8 |
9 |
10 |
11 |
12 | function verifyBasicAuth(req,callback){
13 | var user = auth(req);
14 | if(typeof user === 'undefined'){
15 | return callback(new Error('invalid or missing basic authentication'));
16 | }
17 | winston.log('info','username: %s password: %s',user.name,user.pass);
18 | var url = nconf.get('userServiceIp') + ':' + nconf.get('userServicePort');
19 | winston.log('info', 'grpc url: %s', url);
20 | var proto = grpc.load('./proto/userManagement.proto').userManagement;
21 | var client = new proto.UserManagement(url,
22 | grpc.credentials.createInsecure());
23 | client.isLoginCorrect({
24 | name: user.name,
25 | password: user.pass
26 | }, function (err, response) {
27 | if (err) {
28 | return callback(new Error('userservice offline'));
29 | } else {
30 | if (response.err) {
31 | winston.log('error', 'couldnt check seco authentication',response.err);
32 | return callback(response.err);
33 | } else {
34 | winston.log('info', 'successfully checked seco authentication. isMatch: ', response.isCorrect);
35 | return callback(null,response.isCorrect,user.name);
36 | }
37 | }
38 | });
39 | }
40 |
41 | module.exports = {
42 | verifyBasicAuth : verifyBasicAuth
43 | };
--------------------------------------------------------------------------------
/code/Slack/proto/slackMessaging.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | package slackMessaging;
4 |
5 | service SlackMessaging {
6 | rpc GetChannelList (GetChannelListRequest) returns (GetChannelListReply) {}
7 |
8 | rpc GetChannelMessages (GetChannelMessagesRequest) returns (GetChannelMessagesReply) {}
9 |
10 | rpc SendMessage (SendMessageRequest) returns (SendMessageReply) {}
11 | }
12 |
13 | //Auth message
14 | message Authentication {
15 | string token = 1; //auth string,for example user:password or Bearer XXXXX
16 | AuthenticationType type = 2;
17 | }
18 |
19 | //Auth types enum
20 | enum AuthenticationType {
21 | BASIC = 0;
22 | OAUTH2 = 1;
23 | }
24 |
25 | // The request message
26 | message GetChannelListRequest {
27 | Authentication auth = 2;
28 | }
29 |
30 | // The response message
31 | message GetChannelListReply {
32 | string channels = 1;
33 | string err = 3;
34 | }
35 |
36 | // The request message
37 | message GetChannelMessagesRequest {
38 | string channel = 1; //as Id
39 | string oldest = 2; //timestamp of oldest msg
40 | Authentication auth = 3;
41 | }
42 |
43 | // The response message
44 | message GetChannelMessagesReply {
45 | string messages = 1;
46 | string timeStampOfLastMsg = 2;
47 | string err = 3;
48 | }
49 |
50 | // The request message
51 | message SendMessageRequest {
52 | string channel = 1; //as Id
53 | string message = 2;
54 | string as_user = 3; //if false,message sender is bot
55 | Authentication auth = 4;
56 | }
57 |
58 | // The response message
59 | message SendMessageReply {
60 | string status = 1;
61 | string err = 2;
62 | }
63 |
--------------------------------------------------------------------------------
/code/UserManagement/db/models/User.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 24.08.16.
3 | */
4 | // Load mongoose package
5 | var mongoose = require('mongoose'),
6 | bcrypt = require('bcrypt'),
7 | SALT_WORK_FACTOR = 10;
8 |
9 | // Create a schema
10 | var UserSchema = new mongoose.Schema({
11 | username: { type: String, required: true, index: { unique: true } },
12 | password: { type: String, required: true },
13 | auth: {type: Array}, // JSON String with service authentication tokens and service name {service : example,token : example}
14 | sessionId : {type: String}
15 | });
16 |
17 | UserSchema.pre('save', function(next) {
18 | var user = this;
19 |
20 | // only hash the password if it has been modified (or is new)
21 | if (!user.isModified('password')) return next();
22 |
23 | // generate a salt
24 | bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {
25 | if (err) return next(err);
26 |
27 | // hash the password using our new salt
28 | bcrypt.hash(user.password, salt, function(err, hash) {
29 | if (err) return next(err);
30 |
31 | // override the cleartext password with the hashed one
32 | user.password = hash;
33 | next();
34 | });
35 | });
36 | });
37 |
38 | UserSchema.methods.comparePassword = function(candidatePassword, callback) {
39 | bcrypt.compare(candidatePassword, this.password, function(err, isMatch) {
40 | if (err) return callback(err);
41 | callback(null, isMatch);
42 | });
43 | };
44 |
45 | module.exports = mongoose.model('User', UserSchema);
--------------------------------------------------------------------------------
/code/TransferService/grpc/server.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by phili on 02.08.2016.
3 | */
4 | 'use strict';
5 |
6 | var grpc = require('grpc'),
7 | winston = require('winston'),
8 | grpcFileStreamer = require('./grpcFileStreamer'),
9 | transfer = require('.././transfer');
10 |
11 |
12 | var exports = module.exports = {};
13 |
14 | //global var
15 | var _server;
16 |
17 | exports.init = function (serverIp, serverPort) {
18 | var fileTransferProto = grpc.load('./proto/fileTransfer.proto').fileTransfer;
19 | _server = new grpc.Server();
20 | _server.addProtoService(fileTransferProto.FileTransfer.service, {
21 | transferTo: transferTo
22 | });
23 | var serverUri = serverIp + ':' + serverPort;
24 | _server.bind(serverUri, grpc.ServerCredentials.createInsecure());
25 | transfer.init();
26 | winston.log('info', 'RPC init succesful on: ' + serverUri);
27 | };
28 |
29 | exports.start = function () {
30 | _server.start();
31 | winston.log('info', 'RPC server started');
32 | };
33 |
34 | /**
35 | * Implements the TransferTo RPC method.
36 | */
37 | function transferTo(call, callback) {
38 | winston.log('info', 'transferTo rpc method request');
39 | winston.log('info', 'encrypted basic auth');
40 | transfer.toFileStorage(call.metadata.get('service')[0], call.metadata.get('username')[0], call.metadata.get('filename')[0], call.metadata.get('path')[0], call, function (err, status) {
41 | if (err) {
42 | callback(null, {err: err});
43 | } else {
44 | callback(null, {status: status});
45 | }
46 | });
47 | }
48 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/create-team/create-team.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {TeamService} from '../_services/index';
3 | import {Team} from "../_models/team";
4 | import {MdDialog} from '@angular/material';
5 | import {NotificationsService} from 'angular2-notifications/lib/notifications.service';
6 | import {Response} from "@angular/http";
7 |
8 | @Component({
9 | selector: 'app-create-team',
10 | templateUrl: './create-team.component.html',
11 | styleUrls: ['./create-team.component.scss']
12 | })
13 | export class CreateTeamComponent implements OnInit {
14 | model: any = {};
15 | loading: boolean;
16 |
17 | constructor(private teamService: TeamService, private notService: NotificationsService, public dialog: MdDialog) {
18 | }
19 |
20 | ngOnInit() {
21 | }
22 |
23 | createTeam() {
24 | var team = new Team(this.model.teamName, this.model.password);
25 | this.loading = true;
26 | this.teamService.createTeam(team)
27 | .subscribe(
28 | data => {
29 | if (data instanceof Response) {
30 | data = data.json();
31 | this.loading = false;
32 | if (data.ok) {
33 | this.notService.success('Team created!', '');
34 | this.dialog.closeAll();
35 | } else {
36 | this.notService.error('Team creation failed', data.errorMsg);
37 | }
38 | }
39 | },
40 | error => {
41 | this.loading = false;
42 | this.notService.error('Team creation error', error);
43 | });
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/create-team/create-team.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Create Team
4 |
5 |
6 | account_circle
7 |
10 |
11 |
12 |
13 | lock
14 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/_guards/auth.guard.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var router_1 = require('@angular/router');
13 | var AuthGuard = (function () {
14 | function AuthGuard(router) {
15 | this.router = router;
16 | }
17 | AuthGuard.prototype.canActivate = function () {
18 | if (localStorage.getItem('currentUser')) {
19 | // logged in so return true
20 | return true;
21 | }
22 | // not logged in so redirect to login page
23 | this.router.navigate(['/login']);
24 | return false;
25 | };
26 | AuthGuard = __decorate([
27 | core_1.Injectable(),
28 | __metadata('design:paramtypes', [router_1.Router])
29 | ], AuthGuard);
30 | return AuthGuard;
31 | }());
32 | exports.AuthGuard = AuthGuard;
33 | //# sourceMappingURL=auth.guard.js.map
--------------------------------------------------------------------------------
/code/SeCoApi/cert.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIETjCCAzagAwIBAgIJAJlVse+SJfhNMA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
3 | BAYTAkRFMQ4wDAYDVQQIEwVhc2RhczEPMA0GA1UEBxMGYXNkYXNkMQ8wDQYDVQQK
4 | EwZhc2Rhc2QxDjAMBgNVBAsTBWFkYXNkMQ8wDQYDVQQDEwZhc2Rhc2QxFTATBgkq
5 | hkiG9w0BCQEWBmFzZGFzZDAeFw0xNjEyMjExMjE2MzdaFw0xNzEyMjExMjE2Mzda
6 | MHcxCzAJBgNVBAYTAkRFMQ4wDAYDVQQIEwVhc2RhczEPMA0GA1UEBxMGYXNkYXNk
7 | MQ8wDQYDVQQKEwZhc2Rhc2QxDjAMBgNVBAsTBWFkYXNkMQ8wDQYDVQQDEwZhc2Rh
8 | c2QxFTATBgkqhkiG9w0BCQEWBmFzZGFzZDCCASIwDQYJKoZIhvcNAQEBBQADggEP
9 | ADCCAQoCggEBAJ+eIf08u1QVFK38Lm3S2+aiL+q6N6ATk7FrjBGpy+TSwWzebBY5
10 | bR33Gt7tjOffkcct1Z8PXOWfnCtspEro4FnYL6WeXtAr/aAse+dz0yBFdjV5K0WT
11 | q+LXt3h/uQ8O89pey7morf0q+2CnWy/6sZsUBxP5fgrHhx64PETYCBmovHGR40m7
12 | 7c7Xac1tDCQqyj+T1OdllwaqVYyEp9e4CIoFvXTffqISX2AjhiQzj+MRThgaNTSJ
13 | jRBDakH2488e6c+5tBh4fFJvA9s8AWjfutlYzuF1QEWJn71IOyjCm45iHvl5Xf5+
14 | JNFEK/wJuPbqxFanphkjbYjRSWKBpw7ivpECAwEAAaOB3DCB2TAdBgNVHQ4EFgQU
15 | cmUYiBa2ikVqnpy9+Ut7XjH4h5MwgakGA1UdIwSBoTCBnoAUcmUYiBa2ikVqnpy9
16 | +Ut7XjH4h5Ohe6R5MHcxCzAJBgNVBAYTAkRFMQ4wDAYDVQQIEwVhc2RhczEPMA0G
17 | A1UEBxMGYXNkYXNkMQ8wDQYDVQQKEwZhc2Rhc2QxDjAMBgNVBAsTBWFkYXNkMQ8w
18 | DQYDVQQDEwZhc2Rhc2QxFTATBgkqhkiG9w0BCQEWBmFzZGFzZIIJAJlVse+SJfhN
19 | MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAI4lIWUyDDV+lQ/PFD+/
20 | k/i1NV12aT3OTVXu955CVC/qYITF8Cdx3a3mJv6VmerZMptbwSvnD/DcpRd8+OHR
21 | vdeKs/LBNe42SUW2b+qciuTke7stx9zNP+OuD7EN0WcFBJeGcAhkGFjzbVeXLMgX
22 | 3FMD1oPJAYj/5bKjlOxMscN5n2q2RcfR1VTH18hWiYvzLi4K+Wq4qY7V5bpD280P
23 | /UGjh4m+RnwtwFO9CnWnKpgRcBpsHqygNUlMnQtl4J3DBuu5qsTECH6iZWHf/Vcf
24 | Iy9pPNimEGbctA0nPlbRHKRiE9b8KpCKr8TlMBsRot1pmaXRy1WMNJzMuMQE1rxX
25 | T/k=
26 | -----END CERTIFICATE-----
27 |
--------------------------------------------------------------------------------
/code/AuthenticationService/cert.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIETjCCAzagAwIBAgIJAJlVse+SJfhNMA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
3 | BAYTAkRFMQ4wDAYDVQQIEwVhc2RhczEPMA0GA1UEBxMGYXNkYXNkMQ8wDQYDVQQK
4 | EwZhc2Rhc2QxDjAMBgNVBAsTBWFkYXNkMQ8wDQYDVQQDEwZhc2Rhc2QxFTATBgkq
5 | hkiG9w0BCQEWBmFzZGFzZDAeFw0xNjEyMjExMjE2MzdaFw0xNzEyMjExMjE2Mzda
6 | MHcxCzAJBgNVBAYTAkRFMQ4wDAYDVQQIEwVhc2RhczEPMA0GA1UEBxMGYXNkYXNk
7 | MQ8wDQYDVQQKEwZhc2Rhc2QxDjAMBgNVBAsTBWFkYXNkMQ8wDQYDVQQDEwZhc2Rh
8 | c2QxFTATBgkqhkiG9w0BCQEWBmFzZGFzZDCCASIwDQYJKoZIhvcNAQEBBQADggEP
9 | ADCCAQoCggEBAJ+eIf08u1QVFK38Lm3S2+aiL+q6N6ATk7FrjBGpy+TSwWzebBY5
10 | bR33Gt7tjOffkcct1Z8PXOWfnCtspEro4FnYL6WeXtAr/aAse+dz0yBFdjV5K0WT
11 | q+LXt3h/uQ8O89pey7morf0q+2CnWy/6sZsUBxP5fgrHhx64PETYCBmovHGR40m7
12 | 7c7Xac1tDCQqyj+T1OdllwaqVYyEp9e4CIoFvXTffqISX2AjhiQzj+MRThgaNTSJ
13 | jRBDakH2488e6c+5tBh4fFJvA9s8AWjfutlYzuF1QEWJn71IOyjCm45iHvl5Xf5+
14 | JNFEK/wJuPbqxFanphkjbYjRSWKBpw7ivpECAwEAAaOB3DCB2TAdBgNVHQ4EFgQU
15 | cmUYiBa2ikVqnpy9+Ut7XjH4h5MwgakGA1UdIwSBoTCBnoAUcmUYiBa2ikVqnpy9
16 | +Ut7XjH4h5Ohe6R5MHcxCzAJBgNVBAYTAkRFMQ4wDAYDVQQIEwVhc2RhczEPMA0G
17 | A1UEBxMGYXNkYXNkMQ8wDQYDVQQKEwZhc2Rhc2QxDjAMBgNVBAsTBWFkYXNkMQ8w
18 | DQYDVQQDEwZhc2Rhc2QxFTATBgkqhkiG9w0BCQEWBmFzZGFzZIIJAJlVse+SJfhN
19 | MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAI4lIWUyDDV+lQ/PFD+/
20 | k/i1NV12aT3OTVXu955CVC/qYITF8Cdx3a3mJv6VmerZMptbwSvnD/DcpRd8+OHR
21 | vdeKs/LBNe42SUW2b+qciuTke7stx9zNP+OuD7EN0WcFBJeGcAhkGFjzbVeXLMgX
22 | 3FMD1oPJAYj/5bKjlOxMscN5n2q2RcfR1VTH18hWiYvzLi4K+Wq4qY7V5bpD280P
23 | /UGjh4m+RnwtwFO9CnWnKpgRcBpsHqygNUlMnQtl4J3DBuu5qsTECH6iZWHf/Vcf
24 | Iy9pPNimEGbctA0nPlbRHKRiE9b8KpCKr8TlMBsRot1pmaXRy1WMNJzMuMQE1rxX
25 | T/k=
26 | -----END CERTIFICATE-----
27 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/teamArea/teamArea.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var TeamAreaComponent = (function () {
13 | function TeamAreaComponent() {
14 | this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
15 | //TODO init current Team
16 | }
17 | TeamAreaComponent.prototype.ngOnInit = function () {
18 | console.log('ng on init of TeamAreaComponent called');
19 | };
20 | TeamAreaComponent = __decorate([
21 | core_1.Component({
22 | selector: 'teamArea',
23 | moduleId: module.id,
24 | templateUrl: 'teamArea.component.html'
25 | }),
26 | __metadata('design:paramtypes', [])
27 | ], TeamAreaComponent);
28 | return TeamAreaComponent;
29 | }());
30 | exports.TeamAreaComponent = TeamAreaComponent;
31 | //# sourceMappingURL=teamArea.component.js.map
--------------------------------------------------------------------------------
/code/TransferService/grpc/grpcFileStreamer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by PhilippMac on 12.01.17.
3 | */
4 | "use strict";
5 |
6 | function receiveFileStream(grpcCall,metadataParams,errParam,chunkParameter,cb){
7 | var metadataResult = {};
8 | var err;
9 | var fileBuffer = [];
10 | grpcCall.on('data', function (msgReceived) {
11 | console.log('got data');
12 | _handleChunk(msgReceived[chunkParameter],fileBuffer);
13 | _updateMetadata(msgReceived,metadataParams,metadataResult);
14 | err = _checkError(msgReceived,errParam,err);
15 | });
16 | grpcCall.on('end', function () {
17 | console.log('end');
18 | if (err) {
19 | return cb(err);
20 | } else {
21 | return cb(null,metadataResult,fileBuffer);
22 | }
23 | });
24 | }
25 |
26 | function _handleChunk(chunk,fileBuffer){
27 | if(chunk.length > 0){
28 | for(let i = 0;i
2 |
3 | Login
4 |
5 |
6 | account_circle
7 |
10 |
11 |
12 |
13 | lock
14 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/userArea/userArea.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var index_1 = require('../_services/index');
13 | var UserAreaComponent = (function () {
14 | function UserAreaComponent(userService) {
15 | this.userService = userService;
16 | this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
17 | }
18 | UserAreaComponent.prototype.ngOnInit = function () {
19 | console.log('ng on init of TeamAreaComponent called');
20 | };
21 | UserAreaComponent = __decorate([
22 | core_1.Component({
23 | selector: 'userArea',
24 | moduleId: module.id,
25 | templateUrl: 'userArea.component.html'
26 | }),
27 | __metadata('design:paramtypes', [index_1.UserService])
28 | ], UserAreaComponent);
29 | return UserAreaComponent;
30 | }());
31 | exports.UserAreaComponent = UserAreaComponent;
32 | //# sourceMappingURL=userArea.component.js.map
--------------------------------------------------------------------------------
/code/AuthenticationService/chain.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
3 | MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
4 | DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
5 | SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
6 | GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
7 | AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
8 | q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
9 | SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
10 | Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
11 | a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
12 | /PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
13 | AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
14 | CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
15 | bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
16 | c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
17 | VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
18 | ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
19 | MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
20 | Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
21 | AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
22 | uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
23 | wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
24 | X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
25 | PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
26 | KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
27 | -----END CERTIFICATE-----
28 |
--------------------------------------------------------------------------------
/code/Frontend/cliProject/src/app/home/home.component.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
7 | };
8 | var __metadata = (this && this.__metadata) || function (k, v) {
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10 | };
11 | var core_1 = require('@angular/core');
12 | var index_1 = require('../_services/index');
13 | var HomeComponent = (function () {
14 | function HomeComponent(userService) {
15 | this.userService = userService;
16 | this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
17 | console.log(this.currentUser.username);
18 | console.log(this.currentUser.basicAuth);
19 | }
20 | HomeComponent.prototype.ngOnInit = function () {
21 | console.log('ng on init HomeComponent called');
22 | };
23 | HomeComponent = __decorate([
24 | core_1.Component({
25 | moduleId: module.id,
26 | templateUrl: 'home.component.html'
27 | }),
28 | __metadata('design:paramtypes', [index_1.UserService])
29 | ], HomeComponent);
30 | return HomeComponent;
31 | }());
32 | exports.HomeComponent = HomeComponent;
33 | //# sourceMappingURL=home.component.js.map
--------------------------------------------------------------------------------
/code/Slack/test/slackTest.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var expect = require('chai').expect,
4 | assert = require('chai').assert,
5 | fs = require('fs'),
6 | slack = require("../slack");
7 |
8 |
9 | var access_token = {};
10 |
11 | function init() {
12 | access_token = 'xoxp-11952872597-11961057271-79718090480-c8f859272a';
13 | }
14 |
15 |
16 | describe('Slack', function () {
17 | before(function () {
18 | init();
19 | });
20 | describe('getChannelList', function () {
21 | it('returns all channels in slack team corresponding to access_token', function (done) {
22 | this.timeout(10000);
23 | slack.getChannelList(access_token, function (err, dirs) {
24 | expect(err).to.be.a('null');
25 | expect(dirs).to.be.not.a('null');
26 | done();
27 | });
28 | });
29 | });
30 | describe('getChannelMessages', function () {
31 | it('returns messages in channel with their text and sender', function (done) {
32 | this.timeout(10000);
33 | slack.getChannelMessages(access_token, 'C0BU2EU4Q', function (err, messages) {
34 | expect(err).to.be.a('null');
35 | expect(messages).to.be.not.a('null');
36 | done();
37 | });
38 | });
39 | });
40 | describe('sendMessage', function () {
41 | it('sends a message to a channel', function (done) {
42 | this.timeout(10000);
43 | slack.sendMessage(access_token, 'C0BU2EU4Q', 'testMessage', true, function (err, msg) {
44 | expect(err).to.be.a('null');
45 | assert.equal(msg, 'ok');
46 | done();
47 | });
48 | });
49 | });
50 | });
--------------------------------------------------------------------------------
/code/SeCoApi/key.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN RSA PRIVATE KEY-----
2 | MIIEowIBAAKCAQEAn54h/Ty7VBUUrfwubdLb5qIv6ro3oBOTsWuMEanL5NLBbN5s
3 | FjltHfca3u2M59+Rxy3Vnw9c5Z+cK2ykSujgWdgvpZ5e0Cv9oCx753PTIEV2NXkr
4 | RZOr4te3eH+5Dw7z2l7Luait/Sr7YKdbL/qxmxQHE/l+CseHHrg8RNgIGai8cZHj
5 | SbvtztdpzW0MJCrKP5PU52WXBqpVjISn17gIigW9dN9+ohJfYCOGJDOP4xFOGBo1
6 | NImNEENqQfbjzx7pz7m0GHh8Um8D2zwBaN+62VjO4XVARYmfvUg7KMKbjmIe+Xld
7 | /n4k0UQr/Am49urEVqemGSNtiNFJYoGnDuK+kQIDAQABAoIBAFtawS9UBA9CpXxS
8 | uiwHI+6jYvNgMxf+PGiuGhO978F+UlBCGPC7W1VsKUfwA9ZuIdwywnHv9AZETLiZ
9 | zIpHMKibT+Hle3R/yQBUlXHJ28s7lkVSnU6MDzOcrRhdWYhh0XVpDgaroTEl2Yvf
10 | HRSf0ejlFIv9HoOC4TXW0j/AuRodjp+2ePuEdN5xyWsHdSonXnETJiRIir2DCvJI
11 | f19zwc8qbZuH0/hAWRUGNKy/RnHab45ZQ3gvcwK6SqLnBVw0Oa0WQgrBwBsYn2Rw
12 | fSHieL5wDNhe1JlGW/vi/u2xjiegzk6mN5nKDkUatrBDpLumfZsIK9GvAox2Hdab
13 | cA4kgbUCgYEAy4TK4mLcALMd5JEP7wO6cUzqNtRPqydAuX3NDTlam8Kajk4va7vw
14 | wnfZVBcUvoKNiJNXw7/Gv/m2dRNdwzRWxmxWcPZdW9n9q+TZ+EriquMCHkNCc4Vu
15 | nN86/qnVfFHYhdrisGXEnPsaA/fG6Uzsr4IsMKe8CE4OMQg/FBaUrJ8CgYEAyMc7
16 | conk9CAG3NRYJNI4a0phcPqIBaTF+7VCLoRvjqbxjpC37Q95o84Q7ANcZhfwLXHc
17 | vcOAeWJ9mxOgw0VUFFZAANW1QCWAAduBvaS3oIYYelQtJ90jtFt+8Ur9xq/y8WCt
18 | t7tQ+kOQK+L3WotmtRJAE0CV64k7UqIlbTy6ls8CgYEAtLWksH+3eaeR03I7A6/7
19 | zL7O+QBr/T1Na2cYu7VBjyysr88crDyk+wgQIWqdMMwbgDnUpCuU/sFsEWiwyLOg
20 | mW95EbSwEO7vH8KFCML1oWcQam6ugoToQsK0T4vd1BWYfMJuptK2Ue1knEFWjbGQ
21 | OAcN1eYaQAWO9FquJ9glC2ECgYBPO8irB94RtT3gEfCC/28CcEUJ9+SMDZ2QGtT2
22 | VI9NxXYYY+YhqHTBfwXQjfb91z6SQJfzT165CHQ3KcTMquRmbi8t5Sh1GxdsJDsM
23 | Ix/QOnsYc3WqgKuhdmYfRQ/nQ/Jk7VlA46wuR1Fy8EvbMJ4koQImVtuTKwH9Nz37
24 | 4PZlowKBgHO1pAIjhT8gv5HRPGdPHBZlAZd2BvYCHqI//455h1dVc0bJS1Ykohkj
25 | fw+pi/lh0irynDlzhNPLxqamwu92Ny5NCXvIL81pyFTsmDf6V52xkMd7JICQ4VxG
26 | cD7KNteyCqxIZ4eGkRuVToAoEBF93n45ou+pykoLICNVnIlksjeW
27 | -----END RSA PRIVATE KEY-----
28 |
--------------------------------------------------------------------------------
/code/SeCoApi/json/googleDriveRoutes.json:
--------------------------------------------------------------------------------
1 | {
2 | "service_name": "GOOGLE",
3 | "grpc_ip": "localhost",
4 | "grpc_port": 50049,
5 | "grpc_service_name": "FileStorage",
6 | "grpc_package_name": "fileStorage",
7 | "authentication_type": "OAUTH2",
8 | "requests": [
9 | {
10 | "http-method": "get",
11 | "route": "/google/file",
12 | "query_parameter": [
13 | "path"
14 | ],
15 | "grpc_function": "getFile",
16 | "response_parameter": [
17 | "fileName",
18 | "fileBuffer"
19 | ],
20 | "notification": false
21 | },
22 | {
23 | "http-method": "get",
24 | "route": "/google/filetree",
25 | "query_parameter": [
26 | "path"
27 | ],
28 | "grpc_function": "getFileTree",
29 | "response_parameter": [
30 | "dirs"
31 | ],
32 | "notification": false
33 | },
34 | {
35 | "http-method": "put",
36 | "route": "/google/file",
37 | "query_parameter": [
38 | "path"
39 | ],
40 | "grpc_function": "uploadFile",
41 | "reserved_parameter": [
42 | "fileName",
43 | "fileBuffer"
44 | ],
45 | "response_parameter": [
46 | "status"
47 | ],
48 | "notification": true,
49 | "message": "new file uploaded"
50 | },
51 | {
52 | "http-method": "post",
53 | "route": "/google/file/transfer",
54 | "query_parameter": [
55 | "path",
56 | "targetService"
57 | ],
58 | "grpc_function": "fileTransfer",
59 | "reserved_parameter": [
60 | "userName"
61 | ],
62 | "response_parameter": [
63 | "status"
64 | ],
65 | "notification": true,
66 | "message": "new file transfer"
67 | }
68 | ]
69 | }
--------------------------------------------------------------------------------
/code/AuthenticationService/key.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN RSA PRIVATE KEY-----
2 | MIIEowIBAAKCAQEAn54h/Ty7VBUUrfwubdLb5qIv6ro3oBOTsWuMEanL5NLBbN5s
3 | FjltHfca3u2M59+Rxy3Vnw9c5Z+cK2ykSujgWdgvpZ5e0Cv9oCx753PTIEV2NXkr
4 | RZOr4te3eH+5Dw7z2l7Luait/Sr7YKdbL/qxmxQHE/l+CseHHrg8RNgIGai8cZHj
5 | SbvtztdpzW0MJCrKP5PU52WXBqpVjISn17gIigW9dN9+ohJfYCOGJDOP4xFOGBo1
6 | NImNEENqQfbjzx7pz7m0GHh8Um8D2zwBaN+62VjO4XVARYmfvUg7KMKbjmIe+Xld
7 | /n4k0UQr/Am49urEVqemGSNtiNFJYoGnDuK+kQIDAQABAoIBAFtawS9UBA9CpXxS
8 | uiwHI+6jYvNgMxf+PGiuGhO978F+UlBCGPC7W1VsKUfwA9ZuIdwywnHv9AZETLiZ
9 | zIpHMKibT+Hle3R/yQBUlXHJ28s7lkVSnU6MDzOcrRhdWYhh0XVpDgaroTEl2Yvf
10 | HRSf0ejlFIv9HoOC4TXW0j/AuRodjp+2ePuEdN5xyWsHdSonXnETJiRIir2DCvJI
11 | f19zwc8qbZuH0/hAWRUGNKy/RnHab45ZQ3gvcwK6SqLnBVw0Oa0WQgrBwBsYn2Rw
12 | fSHieL5wDNhe1JlGW/vi/u2xjiegzk6mN5nKDkUatrBDpLumfZsIK9GvAox2Hdab
13 | cA4kgbUCgYEAy4TK4mLcALMd5JEP7wO6cUzqNtRPqydAuX3NDTlam8Kajk4va7vw
14 | wnfZVBcUvoKNiJNXw7/Gv/m2dRNdwzRWxmxWcPZdW9n9q+TZ+EriquMCHkNCc4Vu
15 | nN86/qnVfFHYhdrisGXEnPsaA/fG6Uzsr4IsMKe8CE4OMQg/FBaUrJ8CgYEAyMc7
16 | conk9CAG3NRYJNI4a0phcPqIBaTF+7VCLoRvjqbxjpC37Q95o84Q7ANcZhfwLXHc
17 | vcOAeWJ9mxOgw0VUFFZAANW1QCWAAduBvaS3oIYYelQtJ90jtFt+8Ur9xq/y8WCt
18 | t7tQ+kOQK+L3WotmtRJAE0CV64k7UqIlbTy6ls8CgYEAtLWksH+3eaeR03I7A6/7
19 | zL7O+QBr/T1Na2cYu7VBjyysr88crDyk+wgQIWqdMMwbgDnUpCuU/sFsEWiwyLOg
20 | mW95EbSwEO7vH8KFCML1oWcQam6ugoToQsK0T4vd1BWYfMJuptK2Ue1knEFWjbGQ
21 | OAcN1eYaQAWO9FquJ9glC2ECgYBPO8irB94RtT3gEfCC/28CcEUJ9+SMDZ2QGtT2
22 | VI9NxXYYY+YhqHTBfwXQjfb91z6SQJfzT165CHQ3KcTMquRmbi8t5Sh1GxdsJDsM
23 | Ix/QOnsYc3WqgKuhdmYfRQ/nQ/Jk7VlA46wuR1Fy8EvbMJ4koQImVtuTKwH9Nz37
24 | 4PZlowKBgHO1pAIjhT8gv5HRPGdPHBZlAZd2BvYCHqI//455h1dVc0bJS1Ykohkj
25 | fw+pi/lh0irynDlzhNPLxqamwu92Ny5NCXvIL81pyFTsmDf6V52xkMd7JICQ4VxG
26 | cD7KNteyCqxIZ4eGkRuVToAoEBF93n45ou+pykoLICNVnIlksjeW
27 | -----END RSA PRIVATE KEY-----
28 |
--------------------------------------------------------------------------------
/code/SeCoApi/json/owncloudRoutes.json:
--------------------------------------------------------------------------------
1 | {
2 | "service_name": "OWNCLOUD",
3 | "grpc_ip": "localhost",
4 | "grpc_port": 50051,
5 | "grpc_service_name": "FileStorage",
6 | "grpc_package_name": "fileStorage",
7 | "authentication_type": "BASIC",
8 | "requests": [
9 | {
10 | "http-method": "get",
11 | "route": "/owncloud/file",
12 | "query_parameter": [
13 | "path"
14 | ],
15 | "grpc_function": "getFile",
16 | "response_parameter": [
17 | "fileName",
18 | "fileBuffer"
19 | ],
20 | "notification": false
21 | },
22 | {
23 | "http-method": "get",
24 | "route": "/owncloud/filetree",
25 | "query_parameter": [
26 | "path"
27 | ],
28 | "grpc_function": "getFileTree",
29 | "response_parameter": [
30 | "dirs"
31 | ],
32 | "notification": false
33 | },
34 | {
35 | "http-method": "put",
36 | "route": "/owncloud/file",
37 | "query_parameter": [
38 | "path"
39 | ],
40 | "grpc_function": "uploadFile",
41 | "reserved_parameter": [
42 | "fileName",
43 | "fileBuffer"
44 | ],
45 | "response_parameter": [
46 | "status"
47 | ],
48 | "notification": true,
49 | "message": "new file uploaded"
50 | },
51 | {
52 | "http-method": "post",
53 | "route": "/owncloud/file/transfer",
54 | "query_parameter": [
55 | "path",
56 | "targetService"
57 | ],
58 | "grpc_function": "fileTransfer",
59 | "reserved_parameter": [
60 | "userName"
61 | ],
62 | "response_parameter": [
63 | "status"
64 | ],
65 | "notification": true,
66 | "message": "new file transfer"
67 | }
68 | ]
69 | }
70 |
--------------------------------------------------------------------------------
/code/SeCoApi/privkey.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PRIVATE KEY-----
2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDdV5oGXw4TCIAr
3 | njct4eKXaFWkv08LIeFNunZaLYeB9WdxQ/bukLhdwloyGUMiLCJ6iz3TKXzolot7
4 | QtI/IF4F8KaGLTzyBSu2gmRQ7gFtUNhRyd9d9UTUuxpD/RicZgSOUEa6zNs5DGXc
5 | 3G2BSYofqRvelta1VAsS4XMTVen8PIqzYB9olr12XX4ysT+8enklRNjF2UXnH62K
6 | ocGWSz3uL6wMqsWzoi+LfLlA4KN54AM0IDPGz1pyr2gAtQ79jfVQ8LsRVxFn759C
7 | 9hFqxhWEXAWUk79qrjAWvQI4QArAE61t5P05bBgbXVyfX7zgncqInDc81ZnRYdzA
8 | sIaYWi9vAgMBAAECggEAS1XfpL+BqNTB2xa0rTcuyl3GmJZMrvtPFgea9MJ+VqtS
9 | E+kQCM7VEYRu8pJKmTzwV0lBN7ftPbTPsJpjuPypQ9hOtWh8T9uWrz3eKvV3It/b
10 | YKsXDYHHdahhHjbsw36tmkqUaEwFaXtgyDV2SAThsDj8tVwdpAYA5uI5KqGZTDIk
11 | 2FCsUjWcXCUDu/UGQkHUm1bsyPCn7QF3GBhh0YPhP4UhuFPajJsQItTMvYLAuUAA
12 | FwTtGUV+i6FwWF+FxVDbl7WZVGyYXl78sW0wd8GY22r0Eb9bzy42Pem724mKAuSt
13 | gl8qEUK18zxhp26T63OvZHMGG/AVdUzYZnJRdyHaMQKBgQD2XnIEBn4c96xw4EMx
14 | SQ+0qh9TBaQtm/23pee6Y2dJIv+vDmKxEoVvwCkLfoKXa00g8BoeRtge9yLbmti0
15 | FgKM6BOkNgANT6NYlbd9XhkzdKAKOL2qoYGHF94vGNavm8B+GPRYEZZyMyrmDLZ9
16 | yYX8MohUxaHJ0CqCbRg+TdpnWwKBgQDl/rMQN7mR8fiZcRZHqLyn0lonQMDTXjyn
17 | fU3rFPxNFGG21Kv8qSCkjLjW7yfITFsu8QkLKyVZFGV1fhQD/jcin+RyBxcO/Jm7
18 | WC4lFORU4tEJPM9KxCW8HUi2L86npA2V2lZ8EGPgdkCXoMZb35522+ogOO1r0efY
19 | cOXvWkaofQKBgAJTtAn7sbc+U5+hTqEpin9vV+pl1D4mCghxBbZJ+BDFxtp1bVM0
20 | 1JPQodKc+EjL16em/OgqTSJFvUuLs95HkvCXxI+5ftihVu6gQ2JowB4vTM+r54a0
21 | DdAj1pJlTqnL8859F9m5GM2tVAtmNVcMzzoplAYQ880/LRecRi1YeOafAoGAYlYt
22 | T5DT6h/QUCL3CLqPtx2MaF4aVAVl36MGzq2RVo+RW+/AfW3+w/xbB6MHmm9zSTXL
23 | zResh1LeMocunapy/n3o2gxIAqNkQ6LnT/mHyveTsuRqKSiGjdDjhuoX7LuLB3hs
24 | I+2KFq3Y3jvis+N/yIgsqYxNjx0XiQZ0eYtazK0CgYEA2sT61WwSiJBBgtfKDIly
25 | xCK/Y2BBordDsfwBok0Of58H/oLiqMeLy8em/OUfVb27iH8MMx1bvgsY4XycztgR
26 | QkRMEMtiq2255JL8FoIcZA5PZM2UWcDWYNAx8lCG3W7tcgDZ1X7x/JjuIzyHp92r
27 | qaOKy61iv/KT/RrN/xXymCw=
28 | -----END PRIVATE KEY-----
29 |
--------------------------------------------------------------------------------