# tejeshkb2144/one-enterprise-cloud architecture

> Architecture diagram of the GitHub repository tejeshkb2144/one-enterprise-cloud, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tejeshkb2144/one-enterprise-cloud
- Repository: https://github.com/tejeshkb2144/one-enterprise-cloud

## Overview

This is a Spring Boot microservice template combining authentication, tenant-aware security, and reusable REST CRUD infrastructure, with an organization-location feature present in the source tree. The documented CRUD path is an HTTP request through a feature controller to generic service logic and a JPA repository; authentication has login, registration, refresh, and OAuth2 flows. Relationships below rely on the README’s architecture and workflow descriptions; source excerpts were not provided, so links specific to the location implementation are left unverified.

Main entry points: [`src/main/java/com/example/microservice/auth/controller/AuthController.java`](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/controller/AuthController.java) (Auth controller), [`src/main/java/com/example/microservice/auth/service/AuthService.java`](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/service/AuthService.java) (Auth service), [`src/main/java/com/example/microservice/auth/security/oauth2/CustomOAuth2UserService.java`](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/oauth2/CustomOAuth2UserService.java) (OAuth2 user mapping), [`src/main/java/com/example/microservice/auth/security/oauth2/OAuth2AuthenticationSuccessHandler.java`](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/oauth2/OAuth2AuthenticationSuccessHandler.java) (OAuth2 success handler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_auth["Authentication and security"]
  node_auth_controller["Auth controller"]
  node_auth_service["Auth service<br/>[AuthService.java]"]
  node_security_config["Security chain"]
  node_jwt_filter["JWT filter"]
  node_jwt_provider["JWT provider"]
  node_oauth_service["OAuth2 user mapping"]
  node_oauth_success["OAuth2 success handler"]
end

subgraph group_crud["CRUD and domain features"]
  node_generic_controller["Generic CRUD controller"]
  node_generic_service["Generic CRUD service"]
  node_location_controller["Location controller"]
  node_location_service["Location service"]
  node_location_repository["Location repository"]
  node_location_entity["Location entity"]
  node_base_entity["Audited base entity<br/>[BaseEntity.java]"]
end

subgraph group_shared["Shared application infrastructure"]
  node_app["Application entry"]
  node_response["API response envelopes<br/>[ApiResponse.java]"]
  node_exception_handler["Exception handling"]
  node_app_config["Application configuration<br/>[AppConfig.java]"]
end

subgraph group_tenant["Tenant and persistence"]
  node_tenant_filter["Tenant filter<br/>[TenantFilter.java]"]
  node_tenant_context["Tenant context<br/>[TenantContext.java]"]
  node_tenant_resolver["Tenant resolver"]
  node_database[("JPA database<br/>[application.yml]")]
end

node_client(("API client"))
node_oauth_provider(("OAuth2 provider"))

node_client -->|"calls auth endpoints"| node_auth_controller
node_auth_controller -->|"delegates auth"| node_auth_service
node_auth_service -->|"issues tokens"| node_jwt_provider
node_client -->|"requests CRUD"| node_generic_controller
node_generic_controller -->|"delegates CRUD"| node_generic_service
node_generic_service -->|"uses JPA persistence"| node_database
node_client -.->|"requests locations"| node_location_controller
node_location_controller -.->|"delegates operations"| node_location_service
node_location_service -.->|"uses repository"| node_location_repository
node_location_repository -.->|"persists records"| node_database
node_location_entity -.->|"extends auditing"| node_base_entity
node_security_config -->|"configures filter"| node_jwt_filter
node_oauth_provider -.->|"authenticates user"| node_oauth_service
node_oauth_service -.->|"maps login user"| node_oauth_success
node_oauth_success -->|"issues JWT"| node_jwt_provider
node_tenant_filter -->|"sets tenant"| node_tenant_context
node_tenant_resolver -->|"resolves tenant"| node_tenant_context
node_app -.->|"starts application"| node_app_config

click node_app "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/BaseMicroserviceApplication.java"
click node_auth_controller "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/controller/AuthController.java"
click node_auth_service "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/service/AuthService.java"
click node_security_config "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/SecurityConfig.java"
click node_jwt_filter "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/jwt/JwtAuthenticationFilter.java"
click node_jwt_provider "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/jwt/JwtTokenProvider.java"
click node_oauth_service "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/oauth2/CustomOAuth2UserService.java"
click node_oauth_success "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/oauth2/OAuth2AuthenticationSuccessHandler.java"
click node_generic_controller "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/abstracts/AbstractController.java"
click node_generic_service "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/abstracts/AbstractService.java"
click node_location_controller "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/controller/LocationController.java"
click node_location_service "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/service/LocationService.java"
click node_location_repository "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/repository/LocationRepository.java"
click node_location_entity "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/entity/LocationEntity.java"
click node_base_entity "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/abstracts/BaseEntity.java"
click node_tenant_filter "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/tenant/TenantFilter.java"
click node_tenant_context "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/tenant/TenantContext.java"
click node_tenant_resolver "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/config/TenantIdentifierResolver.java"
click node_database "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/resources/application.yml"
click node_response "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/response/ApiResponse.java"
click node_exception_handler "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/exception/GlobalExceptionHandler.java"
click node_app_config "https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/config/AppConfig.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth_controller,node_auth_service,node_security_config,node_jwt_filter,node_jwt_provider,node_oauth_service,node_oauth_success,node_client toneBlue
class node_generic_controller,node_generic_service,node_location_controller,node_location_service,node_location_repository,node_location_entity,node_base_entity toneAmber
class node_app,node_response,node_exception_handler,node_app_config toneMint
class node_tenant_filter,node_tenant_context,node_tenant_resolver,node_database toneRose
class node_oauth_provider toneIndigo
```

## Components

### Authentication and security

- [Auth controller](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/controller/AuthController.java): `src/main/java/com/example/microservice/auth/controller/AuthController.java`
- [Auth service](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/service/AuthService.java): `src/main/java/com/example/microservice/auth/service/AuthService.java`
- [Security chain](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/SecurityConfig.java): `src/main/java/com/example/microservice/auth/security/SecurityConfig.java`
- [JWT filter](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/jwt/JwtAuthenticationFilter.java): `src/main/java/com/example/microservice/auth/security/jwt/JwtAuthenticationFilter.java`
- [JWT provider](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/jwt/JwtTokenProvider.java): `src/main/java/com/example/microservice/auth/security/jwt/JwtTokenProvider.java`
- [OAuth2 user mapping](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/oauth2/CustomOAuth2UserService.java): `src/main/java/com/example/microservice/auth/security/oauth2/CustomOAuth2UserService.java`
- [OAuth2 success handler](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/auth/security/oauth2/OAuth2AuthenticationSuccessHandler.java): `src/main/java/com/example/microservice/auth/security/oauth2/OAuth2AuthenticationSuccessHandler.java`

### CRUD and domain features

- [Generic CRUD controller](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/abstracts/AbstractController.java): `src/main/java/com/example/microservice/common/abstracts/AbstractController.java`
- [Generic CRUD service](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/abstracts/AbstractService.java): `src/main/java/com/example/microservice/common/abstracts/AbstractService.java`
- [Location controller](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/controller/LocationController.java): `src/main/java/com/example/microservice/organizations/location/controller/LocationController.java`
- [Location service](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/service/LocationService.java): `src/main/java/com/example/microservice/organizations/location/service/LocationService.java`
- [Location repository](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/repository/LocationRepository.java): `src/main/java/com/example/microservice/organizations/location/repository/LocationRepository.java`
- [Location entity](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/organizations/location/entity/LocationEntity.java): `src/main/java/com/example/microservice/organizations/location/entity/LocationEntity.java`
- [Audited base entity](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/abstracts/BaseEntity.java): `src/main/java/com/example/microservice/common/abstracts/BaseEntity.java`

### Shared application infrastructure

- [Application entry](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/BaseMicroserviceApplication.java): `src/main/java/com/example/microservice/BaseMicroserviceApplication.java`
- [API response envelopes](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/response/ApiResponse.java): `src/main/java/com/example/microservice/common/response/ApiResponse.java`
- [Exception handling](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/exception/GlobalExceptionHandler.java): `src/main/java/com/example/microservice/common/exception/GlobalExceptionHandler.java`
- [Application configuration](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/config/AppConfig.java): `src/main/java/com/example/microservice/config/AppConfig.java`

### Tenant and persistence

- [Tenant filter](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/tenant/TenantFilter.java): `src/main/java/com/example/microservice/common/tenant/TenantFilter.java`
- [Tenant context](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/common/tenant/TenantContext.java): `src/main/java/com/example/microservice/common/tenant/TenantContext.java`
- [Tenant resolver](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/java/com/example/microservice/config/TenantIdentifierResolver.java): `src/main/java/com/example/microservice/config/TenantIdentifierResolver.java`
- [JPA database](https://github.com/tejeshkb2144/one-enterprise-cloud/blob/main/src/main/resources/application.yml): `src/main/resources/application.yml`

### Other components

- **API client**
- **OAuth2 provider**

## Connections

- API client → Auth controller: calls auth endpoints (evidence: `README.md`)
- Auth controller → Auth service: delegates auth (evidence: `README.md`)
- Auth service → JWT provider: issues tokens (evidence: `README.md`)
- API client → Generic CRUD controller: requests CRUD (evidence: `README.md`)
- Generic CRUD controller → Generic CRUD service: delegates CRUD (evidence: `README.md`)
- Generic CRUD service → JPA database: uses JPA persistence (evidence: `README.md`)
- API client → Location controller: requests locations
- Location controller → Location service: delegates operations
- Location service → Location repository: uses repository
- Location repository → JPA database: persists records
- Location entity → Audited base entity: extends auditing
- Security chain → JWT filter: configures filter (evidence: `README.md`)
- OAuth2 provider → OAuth2 user mapping: authenticates user
- OAuth2 user mapping → OAuth2 success handler: maps login user
- OAuth2 success handler → JWT provider: issues JWT (evidence: `README.md`)
- Tenant filter → Tenant context: sets tenant (evidence: `README.md`)
- Tenant resolver → Tenant context: resolves tenant (evidence: `README.md`)
- Application entry → Application configuration: starts application
