Integrantes:
- Bruno de Oliveira Figueiredo
- Edinei Nissola
- Eduardo Ormond dos Santos
- Francisco Jose Prata Vidal
- Jefferson Gonçalves de Oliveira Reis
Tecnologias utlizadas:
repository
│
├── app
│ │
| ├── .devcontainer
| | ├── devcontainer.json [Arquivo de configuração da extensão do VSC]
| | └── docker-compose.yml [Compose para subir o ambiente de dev]
| |
| │
| ├── backend
| │ └── database [Tabelas de Dados do Projeto - Simple JSObject]
| ├── express.server.ts [Backend server com o conector do Keycloak]
| ├── ...
| │
│ │
| └── frontend
| └── src
| └── app
| ├── consumer
| │ ├── devops.service.ts [Service - retorna dados do backend]
| │ ├── generic.model.ts [Model - mapeia dados dos services]
| │ └── ia.service.ts [Service - retorna dados do backend]
| ├── keycloak
| │ ├── auth.guard.ts [KeycloakAuthGuard - proteger as rotas]
| │ ├── auth.service.ts [KeycloakService - servicos do keycloak]
| │ └── keycloak-service-factory.ts [Config - realm do keycloak]
| ├── pages
| ├── app.config.ts [Config - bind factory e add providers a app]
| ├── app.routes.ts [Rote - restringe as rotas com o auth.guard]
| └── ...
|
|
├─ kong-api
| ├── kong-gateway.postman_collection.json [Collecttion - Import no Postman]
| ├── rate-limiting.sh [Test - Realiza várias requisições]
| └── requests.http [REST Client - Alternativa ao Postman]
|
|
├── build.sh [Script para criar o ambiente]
└── docker-compose.yml
Você precisará ter instalado na sua maquina:
- Docker
- Visual Studio Code
- [Extensão] Dev Container - Microsoft
- [Extensão] REST Client - Huachao Mao ou Postman/Insomnia
-
Execute o script "./build.sh"
[!ATENÇÃO!] - O script deverá ser executado apenas na primeira vez, pois ele irá criar os volumes, rede e executar o migrations do Kong Gateway
- Executar novamente o script irá apagar o ambiente e criá-lo novamente.
-
Iniciando os containers com o docker compose
docker compose up -d
-
Abra a pasta "./app/" no Visual Studio Code
-
Pressino <F1> e busque a ação: "Dev Containers: Reopen in Container"
-
Abra dois terminais dentro do Visual Studio Code
5.1 Será preciso alterar dois arquivos para apontar para o ip da sua maquina local
- backend/express.server.ts (linha 16)
- frontend/src/app/keycloak/keycloak-service-factory.ts (linha 7)
5.2 Iniciando o ambiente
No primeiro entre na pasta "backend", instale as dependencias e start:
cd backend npm install npm start
- No segundo repita o processo mas na pasta "frontend":
cd backend npm install npm start
-
Utilize os Links na sessão abaixo(Mapeamento de Portas) para acessar os serviços
-
Através do Kong Manager manipule os serviços, rotas e plugins
- Está disponível aqui no projeto chamadas a API para administrar o kong em:
- Postman Collection -
./kong-api/kong-gateway.postman_collection.json
- REST Client (need VSCode Plugin) -
./kong-api/requests.http
- Postman Collection -
- Está disponível aqui no projeto chamadas a API para administrar o kong em:
# | Host Port | Container Port | Obs |
---|---|---|---|
kong-db-postgres | (5432) | ||
keycloak-db-postgres | (5432) | ||
keycloak | 8081 | 8080 | Keycloak |
pgadmin | 8082 | 80 | pgadmin |
kong-gateway | 8000 | 8000 | Roteamento HTTP |
8443 | 8443 | Roteamento HTTPS | |
8001 | 8001 | Admin API | |
8444 | 8444 | Admin API (HTTPS) | |
8002 | 8002 | Kong Manager | |
8445 | 8445 | Kong Manager (HTTPS) | |
8003 | 8003 | ||
8004 | 8004 |
# | Host Port | Container Port | Obs |
---|---|---|---|
backend | 9090 | 9090 | API NodeJS + Express |
frontend | 4200 | 4200 | Angular App |
- IP Restriction
- Request Termination
- Request Size Limiting
For security reasons, we suggest enabling this plugin for any service you add to Kong Gateway to prevent a DOS (Denial of Service) attack. by Kong Inc
- Proxy Cache
- Rate Limiting
- Bot Detection
- File Log
- OpenTelemetry
- Prometheus
- OAuth 2.0 Authentication