├── .gitattributes
├── ui
├── .gitignore
├── images
│ └── uiScreenshot.png
├── src
│ ├── __tests__
│ │ ├── setup.ts
│ │ ├── App.tsx
│ │ ├── Title.tsx
│ │ ├── Person.tsx
│ │ ├── __snapshots__
│ │ │ ├── DefaultComponent.tsx.snap
│ │ │ ├── PageForm.tsx.snap
│ │ │ ├── Navbar.tsx.snap
│ │ │ ├── Title.tsx.snap
│ │ │ ├── Person.tsx.snap
│ │ │ ├── Home.tsx.snap
│ │ │ └── App.tsx.snap
│ │ ├── Home.tsx
│ │ ├── Navbar.tsx
│ │ ├── PageForm.tsx
│ │ └── DefaultComponent.tsx
│ ├── index.tsx
│ ├── public
│ │ ├── index.html
│ │ └── mountains.svg
│ ├── components
│ │ ├── AuthButton.tsx
│ │ ├── AuthResponseBar.tsx
│ │ ├── DefaultComponent.tsx
│ │ ├── AuthContext.tsx
│ │ ├── PageForm.tsx
│ │ ├── Navbar.tsx
│ │ ├── PrivateRoute.tsx
│ │ ├── Home.tsx
│ │ ├── Title.tsx
│ │ ├── Person.tsx
│ │ └── App.tsx
│ └── styles
│ │ ├── Navbar.css
│ │ └── App.css
├── webpack.prod.js
├── Dockerfile
├── webpack.dev.js
├── conf
│ └── conf.d
│ │ └── default.conf
├── tsconfig.json
├── tslint.json
├── jest.config.js
├── Dockerfile-developer
├── azure-pipelines.yml
├── package.json
├── webpack.common.js
└── README.md
├── data
├── .gitignore
├── cosmos-import.sh
├── README.md
├── getdata.sh
├── Dockerfile
├── importdata.sh
└── load_env.sh
├── integration-test-tool
├── .gitignore
├── config.ts
├── tsconfig.json
├── jest.config.js
├── tslint.json
├── azure-pipelines.yml
├── package.json
└── README.md
├── infrastructure
├── images
│ ├── perftest1.png
│ ├── perftest2.png
│ └── perftest3.png
├── azure-pipelines.yml
├── global-resources
│ ├── azure-pipelines.yml
│ ├── endpoint_deploy.json
│ └── README.md
├── README.md
├── deploy.sh
└── azuredeploy.json
├── docs
├── images
│ └── high_level_architecture.png
├── buildAndReleasePipelines.md
└── azureActiveDirectory.md
├── api
├── .idea
│ ├── encodings.xml
│ ├── vcs.xml
│ ├── modules.xml
│ ├── compiler.xml
│ └── misc.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── microsoft
│ │ │ │ └── cse
│ │ │ │ └── reference
│ │ │ │ └── spring
│ │ │ │ └── dal
│ │ │ │ ├── config
│ │ │ │ ├── IApplicationConfig.java
│ │ │ │ ├── DatabaseInformation.java
│ │ │ │ ├── OauthConfig.java
│ │ │ │ ├── CORSConfig.java
│ │ │ │ ├── MongoConfig.java
│ │ │ │ ├── RepositoryConfig.java
│ │ │ │ ├── ProductionConfig.java
│ │ │ │ ├── DevelopmentConfig.java
│ │ │ │ ├── DevelopmentEmbeddedData.java
│ │ │ │ └── Constants.java
│ │ │ │ ├── controllers
│ │ │ │ ├── HealthEndpointController.java
│ │ │ │ ├── PersonRepository.java
│ │ │ │ ├── TitleRepository.java
│ │ │ │ └── PrincipalRepository.java
│ │ │ │ ├── converters
│ │ │ │ ├── BooleanToInteger.java
│ │ │ │ ├── NullToEmptyString.java
│ │ │ │ ├── IntegerToBoolean.java
│ │ │ │ ├── EmptyStringToNull.java
│ │ │ │ └── JsonArrayToStringList.java
│ │ │ │ ├── models
│ │ │ │ ├── PrincipalWithName.java
│ │ │ │ ├── Principal.java
│ │ │ │ ├── Person.java
│ │ │ │ └── Title.java
│ │ │ │ └── SpringDAL.java
│ │ └── resources
│ │ │ ├── ApplicationInsights.xml
│ │ │ └── testdata
│ │ │ ├── principals_mapping.testdata.json
│ │ │ ├── titles.testdata.json
│ │ │ └── names.testdata.json
│ └── test
│ │ └── java
│ │ └── com
│ │ └── microsoft
│ │ └── cse
│ │ └── reference
│ │ └── spring
│ │ └── dal
│ │ ├── integration
│ │ ├── Helpers.java
│ │ ├── BasicExclusionTests.java
│ │ └── PropertyMockingApplicationContextInitializer.java
│ │ └── unit
│ │ ├── PersonDataTests.java
│ │ ├── PrincipalDataTests.java
│ │ └── TitleDataTests.java
├── .env
├── azure-pipelines.yml
├── Dockerfile
├── Dockerfile-development
└── pom.xml
├── CODE_OF_CONDUCT.md
├── .github
└── ISSUE_TEMPLATE
│ ├── 2-feature_request.md
│ └── 1-bug_report.md
├── GettingStarted.md
├── LICENSE
├── CONTRIBUTING.md
├── .gitignore
└── SampleApp.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.sh eol=lf
2 |
--------------------------------------------------------------------------------
/ui/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 | .vscode/
--------------------------------------------------------------------------------
/data/.gitignore:
--------------------------------------------------------------------------------
1 | # imdb data downloads
2 | *.tsv
3 | *.tsv.gz
--------------------------------------------------------------------------------
/integration-test-tool/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 | .vscode/
4 |
--------------------------------------------------------------------------------
/ui/images/uiScreenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/entref-spring-boot/HEAD/ui/images/uiScreenshot.png
--------------------------------------------------------------------------------
/infrastructure/images/perftest1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/entref-spring-boot/HEAD/infrastructure/images/perftest1.png
--------------------------------------------------------------------------------
/infrastructure/images/perftest2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/entref-spring-boot/HEAD/infrastructure/images/perftest2.png
--------------------------------------------------------------------------------
/infrastructure/images/perftest3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/entref-spring-boot/HEAD/infrastructure/images/perftest3.png
--------------------------------------------------------------------------------
/docs/images/high_level_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/entref-spring-boot/HEAD/docs/images/high_level_architecture.png
--------------------------------------------------------------------------------
/ui/src/__tests__/setup.ts:
--------------------------------------------------------------------------------
1 | import * as Enzyme from 'enzyme'
2 | import * as Adapter from 'enzyme-adapter-react-16'
3 |
4 | Enzyme.configure({ adapter: new Adapter() })
5 |
--------------------------------------------------------------------------------
/ui/webpack.prod.js:
--------------------------------------------------------------------------------
1 | const merge = require('webpack-merge')
2 | const common = require('./webpack.common.js')
3 |
4 | module.exports = merge(common, {
5 | mode: 'production',
6 | })
--------------------------------------------------------------------------------
/data/cosmos-import.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Executes all the commands required to create and import the data to CosmosDB
4 | az login
5 | ./load_env.sh
6 | source ./vars.env
7 | ./getdata.sh
8 | ./importdata.sh
--------------------------------------------------------------------------------
/api/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 | The requested resource could not be found but may be available again in the future. 14 |
15 |13 | The requested resource could not be found but may be available again in the future. 14 |
15 |16 | Enter an ID to get information about a title from the database. Leave the form empty to get information about a random title. 17 |
18 | 45 |57 | null 58 |59 | 60 |
16 | Enter the ID for a person to retrieve their information from the database. Leave the form empty to get information about a random person. 17 |
18 | 45 |57 | null 58 |59 | 60 |
13 | Project Jackson is an open-source project that creates an application and deployment
14 | infrastructure using Azure App Service for Containers.
15 |
16 |
17 |
18 | Azure resources used include
19 |
20 | App Service for Containers
21 | , CosmosDB
23 | ,
24 | Traffic Manager,
25 | and Application Gateway.
26 |
27 |
28 |
29 | To demonstrate Cosmos DB performance with large amounts of data,
30 | the project imports historical movie data from IMDb.
31 | See here for downloadable IMDB datasets.
32 | The datasets include 8.9 million people, 5.3 million movies and 30 million relationships between them.
33 |
34 |
35 |
36 | Languages used for this project include Java, Javascript, and Typescript.
37 |
38 |
39 | Technologies used include:
40 |
15 |
16 | Project Jackson
17 |
18 | is an open-source project that creates an application and deployment infrastructure using Azure App Service for Containers.
19 |
20 |
21 | Azure resources used include
22 |
25 | App Service for Containers
26 |
27 | ,
28 |
31 | CosmosDB
32 |
33 | ,
34 |
37 | Traffic Manager
38 |
39 | , and
40 |
43 | Application Gateway
44 |
45 | .
46 |
47 |
48 | To demonstrate Cosmos DB performance with large amounts of data, the project imports historical movie data from IMDb. See
49 |
52 | here for downloadable IMDB datasets
53 |
54 | . The datasets include 8.9 million people, 5.3 million movies and 30 million relationships between them.
55 |
56 |
57 | Languages used for this project include Java, Javascript, and Typescript.
58 |
59 |
60 | Technologies used include:
61 |
Enter an ID to get information about a title from the database. 33 | Leave the form empty to get information about a random title.
34 |{JSON.stringify(this.state.result, null, 2)}
44 | Enter the ID for a person to retrieve their information from the database. 33 | Leave the form empty to get information about a random person.
34 |{JSON.stringify(this.state.result, null, 2)}
44 |
68 |
69 | Project Jackson
70 |
71 | is an open-source project that creates an application and deployment infrastructure using Azure App Service for Containers.
72 |
73 |
74 | Azure resources used include
75 |
78 | App Service for Containers
79 |
80 | ,
81 |
84 | CosmosDB
85 |
86 | ,
87 |
90 | Traffic Manager
91 |
92 | , and
93 |
96 | Application Gateway
97 |
98 | .
99 |
100 |
101 | To demonstrate Cosmos DB performance with large amounts of data, the project imports historical movie data from IMDb. See
102 |
105 | here for downloadable IMDB datasets
106 |
107 | . The datasets include 8.9 million people, 5.3 million movies and 30 million relationships between them.
108 |
109 |
110 | Languages used for this project include Java, Javascript, and Typescript.
111 |
112 |
113 | Technologies used include:
114 |