Skip to main content
Version: 2.0

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.

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.

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