How it works
Introduction
The rs-access-project
aims several specific responsibilities for each project created in the Regards architecture.
This microservice groups together a set of functionalities divided into different modules.
Module : uiconfiguration
This module allows to handle the configuration of the Regards user interface with CRUD operations on the database concerning the UI widgets, layout and themes. All these graphical elements are configured in a configuration file (Import/export configuration section), which lists the UI modules, UI theme and used UI layout with their specific features, to display the Regards interface with the user role and to display the Regards interface with the administrator role.
- Endpoints in order to handle the configuration of UI module for user's UI : Module Controller
- Endpoints in order to handle the configuration of UI theme for user's UI : UI Theme Controller
- Endpoints in order to handle the configuration of UI layout for user's UI : UI Layout Controller
- Endpoints in order to handle the UI configuration : UI Configuration Controller
- Endpoints in order to handle the search history in the user's UI for the search form : Search History Controller
Module : backend-for-frontend
Concept
A part of this microservice is based on an architectural pattern named BFF (Backend-For-Frontend), used in modern web developement to improve the efficiency and flexibility of frontend applications.
The rs-Access-Project
microservice serves as an
intermediary layer between the frontend client and multiple backend services, more particulary microservices in Regards.
This module allows to organise in a same HTTP request a complex functionality in order to reduce the number of requests
between the browser and the server. Also there will be less response processing and therefore less complexity on the
browser side.
If, moreover, the backend and frontend teams are different, the use of a BFF is clearly a good solution to isolate
responsibilities between each team.
We use a HTTP API client in order to communicate with other microservices.
Feign Client is a Java-based tool used for simplifying HTTP communication in microservices architecture,
particularly in systems that use REST APIs. It is commonly used in Spring Boot applications.
Feign allows you to define REST clients in a declarative way, meaning you can specify how to interact with external
services by simply defining an interface with annotated methods.
This eliminates the need for boilerplate code that handles the HTTP request and response.
Using Feign Client reduces the amount of code you need to write.
You don’t need to manually write the code for creating HTTP connections, setting headers, serializing requests, or
deserializing responses. Feign abstracts all of this, allowing you to focus on the business logic.
Access Search Controller
This endpoint allows to search in the Regards catalog and injects services to manipulate the results. Services are stored in a memory cache. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-catalog
- feign client to call HTTP API methods in
rs-access-project
Recipient Dto Controller
This endpoint allows to retrieve all recipients of notification in Regards. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-notifier
Toponyms Controller
This endpoint allows to search toponyms in the catalog of Regards. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-access-instance
Module : access-services
This module allows to handle the configuration of the Regards user interface with CRUD operations on the database concerning the UI plugins.
- Endpoints in order to handle the configuration of UI plugins : UI Plugin Controller, UI Plugin Definition Controller, UI Plugin Configuration Controller, Link UI Plugin s Datasets Controller
- Endpoints in order to retrieve aggregations of UI plugins services and
Catalog
(included a feign client to call HTTP API methods inrs-catalog
) microservices : Services Aggregator Controller
Moreover, this module allows you to manage access, resources and the registration links to project users in Regards( =each tenant of Regards) with the Backend-For-Frontend pattern.
Project Users Controller
This endpoint allows to manage project users in Regards. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-admin
- feign client to call HTTP API methods in
rs-storage
Storage Download Quota Controller
This endpoint allows to indicate quotas concerning the downloaded files in an order in Regards. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-storage
AccessSettingsController
This endpoint allows to manage access global settings in Regards. Accesses are the state of project users during the activation process. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-admin
- feign client to call HTTP API methods in
rs-storage
User Resource Controller
This endpoint allows to manage ressources for project users in Regards. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-admin
Registration Controller
This endpoint allows to handle users registration for a project in Regards. This controller is a proxy controller thanks to :
- feign client to call HTTP API methods in
rs-admin