Project | Sonar Status | Build Status | Release Status |
---|---|---|---|
Api Gateway | |||
Discovery Server | N/A | N/A | |
Company Api | |||
Project Api | |||
Frontend App |
- Finalize Project Scope
- Task Assignment
- Trainings
- Docker
- Development
- Documentation
- Component Integration
- Presentation / Demo
- Move ACL for each microservice to its own service directory
-
Use certificates generated by Elastic to validate serilog connection
Create a simple microservices based application with the following components:
- Service Discovery (Consul)
- Basic Setup
- Setup Scripts
- ACL Setup
- mTLS Setup
- Configuration Server (One or more of)
- Consul KV
-
Vault
- Api Gateway (Ocelot)
- Project Setup
- Connection with Consul
- Auth Implementation
- Add routes for company-api
- Add routes for project-api
- Consul Policies
- Consul Configuration
- Logging/Monitoring (One of)
-
Azure Application Insights - ELK
-
- Tracing
- Setup Jaeger using Docker
- Authentication/Authorization (One of)
-
Azure AD -
Keycloak -
Identity Server - Auth0
- Create an API
- Create Backend Application
- Create Frontend Application
- Documentation
-
- Health checks dashboard
- Backend Apis (.NET 7)
- Company API
- Project Setup
- Logging
- Tracing using OpenTelemetry
- Auth
- Controllers
- Health checks
- Docker file
- Unit Tests
- Integration Tests
- CI/CD
- Consul Policies
- Consul Configuration
- Project Api
- Project Setup
- Logging
- Tracing using OpenTelemetry
- Auth
- Controllers
- Health checks
- Docker file
- Unit Tests
- Integration Tests
- CI/CD
- Consul Policies
- Consul Configuration
- Company API
- Frontend Application
- SolidJS App
- Integration with Auth0
- Tests
- CI/CD
- Create Deployment Files for K8s
Before you can begin development, you need to setup the following:
- Auth0
- Consul
- Docker
- DotNET 7 SDK
- Under Applications > Applications, create a new application with the following settings:
- Name:
Project Management Backend
- Application Type: Regular Web Application
- Allowed Callback URLs:
http://localhost:8012/login/oauth2/code/auth0
- Grant Types: Authorization Code, Refresh Token, Implicit, Client Credentials
- Name:
- Under Applications > Applications, create a new application with the following settings:
- Name:
Project Management Frontend
- Application Type: Single Page Application
- Allowed Callback URLs:
http://localhost:3000
- Allowed Logout URLs:
http://localhost:3000
- Grant Types: Authorization Code, Refresh Token, Implicit
- Name:
- Under Applications > APIs, create a new API with the following settings:
- Name:
Project Management
- Identifier:
projectmanagement
- Signing Algorithm:
RS256
- Name:
- Under Permissions tab of the API, create the following permissions:
read:company
write:company
read:project
write:project
read:project
write:project
update:project
delete:project
- Under the Machine to Machine Applications tab, Authorize the Backend Application created above to access the API and assign the permissions created above.
- Download Consul binary from Consul's Website
- Extract Consul binary to any location e.g.
C:\tools\consul
- Add location to
PATH
consul.exe agent -config-file="config\\config.hcl"
consul.exe acl bootstrap
Save the secret-id generated by this command.
Run the following command from powershell:
consul.exe acl token create -description "Token for consul-server-1" -node-identity "consul-server-1:az-1" -token="<bootstrap-token>"
Reload config consul.exe reload
- Run the
configure-consul.ps1
script under theconsul
folder for each service. - Use the generated secret-ids in
appsettings.json
for each service
wsl -d docker-desktop sysctl -w vm.max_map_count=262144