Container View¶
The container view shows the high-level technology choices for the geOrchestra Gateway and how they relate to each other.
Container Diagram¶
The container diagram shows the high-level technology choices for the geOrchestra Gateway and how they relate to each other.
The diagram illustrates:
- The Gateway Spring Boot Application as the main container
- Key internal components organized into layers:
- API Layer: Login, logout, and user info endpoints
- Authentication Layer: LDAP, OAuth2, and Header authentication
- Routing Layer: Spring Cloud Gateway routing engine and filter chain
- External systems that the Gateway interacts with
- Backend geOrchestra services that the Gateway routes to
Note: This diagram is generated from the Structurizr DSL definition in
/docs/structurizr/workspace.dsl
. See the Using Structurizr guide for more information.
Container Description¶
The geOrchestra Gateway consists of several key containers and components:
Main Container¶
Gateway Service (Spring Boot Application) - The main application container built using Spring Boot, which hosts and coordinates all components.
Key Component Layers¶
-
API Layer
- Provides REST APIs for login, logout, and user information retrieval
- Handles UI for the login page
- Serves as the entry point for user authentication
-
Authentication Layer
- LDAP Authentication: Authenticates users against an LDAP directory
- OAuth2 Authentication: Supports authentication via external OAuth2/OpenID Connect providers
- Header Authentication: Processes pre-authenticated HTTP headers from upstream proxies
-
Routing Layer
- Routing Engine: Spring Cloud Gateway core that handles request routing based on predicates
- Filter Chain: Series of filters that process requests/responses, adding headers, applying security, etc.
External Containers¶
- LDAP Directory: Stores user accounts, attributes, and group memberships
- Message Broker (RabbitMQ): Enables event-driven communication with other geOrchestra components
Target Backend Services¶
The Gateway routes requests to various geOrchestra platform services:
- GeoServer: OGC-compliant map and feature server
- GeoNetwork: Metadata catalog
- MapStore: Web mapping application
- Console: User and organization management
- Analytics: Usage statistics
Technology Choices¶
- Spring Boot: Application framework
- Spring WebFlux: Reactive programming model
- Spring Cloud Gateway: API Gateway built on Spring WebFlux
- Spring Security: Authentication and authorization framework
- Docker: Containerization platform for deployment
Container Communication¶
- The Gateway receives HTTPS requests from users and processes them through its filter chain
- Authentication is performed by the appropriate authentication component
- After successful authentication, the routing engine forwards the request to the appropriate backend service
- Communication with backend services is over HTTP/HTTPS
- The LDAP directory is used for authentication and user data retrieval
- The message broker is used for event notification (e.g., user creation events)