From 6fa9f102e7ebd8217e5fedebc184e8918c1b4c9e Mon Sep 17 00:00:00 2001 From: FORESTIER Fabien <fabien.forestier@soprasteria.com> Date: Wed, 12 Jun 2019 16:28:40 +0200 Subject: [PATCH] Fix some typo + add doc for mail and media library service --- docs/architecture/services/authentication.md | 8 ++-- docs/architecture/services/mail.md | 36 +++++++++++++++++ docs/architecture/services/media-library.md | 40 +++++++++++++++++++ docs/architecture/services/organizations.md | 8 ++-- docs/architecture/services/resources.md | 6 +-- docs/architecture/uml-test.md | 4 -- docs/assets/mail-service.png | Bin 0 -> 30655 bytes docs/assets/media-library-service.png | Bin 0 -> 14544 bytes 8 files changed, 86 insertions(+), 16 deletions(-) delete mode 100644 docs/architecture/uml-test.md create mode 100644 docs/assets/mail-service.png create mode 100644 docs/assets/media-library-service.png diff --git a/docs/architecture/services/authentication.md b/docs/architecture/services/authentication.md index 1c80f37..3dc3315 100644 --- a/docs/architecture/services/authentication.md +++ b/docs/architecture/services/authentication.md @@ -22,21 +22,21 @@ The entrypoint of the service is a REST API provided by a [NestJS](https://githu ## API documentation -NestJS provides a swagger module that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-docs`. +NestJS provides a [swagger module](https://docs.nestjs.com/recipes/swagger) that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. ## Service health -NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predifined or custom health indicators. It exposes the health status of the service at `/health`. +NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predefined or custom health indicators. It exposes the health status of the service at `/health`. This service will return a `200` http status code when all indicators are healthy. Otherwise it will return a `503` http status code. -For this service we declared two health indicators that: +For this service we declared two health indicators that verify that: * the Kong API gateway is up * the legacy authentication middleware is up ## Stats We are using a Node module called [swagger-stats](http://swaggerstats.io/). -It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alterting. +It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alerting. Those metrics are available at `/swagger-stats/metrics`. For more information about this module, visit the [official swagger-stat page](http://swaggerstats.io/docs.html). diff --git a/docs/architecture/services/mail.md b/docs/architecture/services/mail.md index e69de29..f744854 100644 --- a/docs/architecture/services/mail.md +++ b/docs/architecture/services/mail.md @@ -0,0 +1,36 @@ +# Mail service + +## What it does + +This service allow to deliver mails to any email address from the address specified in the configuration. It also provides two particular endpoints, one for the user to give a feedback and another one for general contact purpose. Those endpoints will both send an email to the admin address specified in the configuration. + +## How it works + + + +The entrypoint of the service is a REST API provided by a [NestJS](https://github.com/nestjs/nest) application. The service builds email bodies based on the information it receives and on the provided HTML templates. It then format a JSON with all the properties (to, from, body...) expected by an SMTP server to correctly send an email. + +However the service does not send this JSON directly to the distant SMTP server. Indeed as a connection failure might occure, we chose to persist this object in a RabbitMQ queue. Then a small worker written in Node.js will consume the messages from the queue and send it to the SMTP server if correctly formatted. The messages will be removed (acknoledged) from the queue only if the SMTP received the message. + +## API documentation + +NestJS provides a [swagger module](https://docs.nestjs.com/recipes/swagger) that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. + +## Service health + +NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predefined or custom health indicators. It exposes the health status of the service at `/health`. +This service will return a `200` http status code when all indicators are healthy. Otherwise it will return a `503` http status code. + +For this service we declared an health indicator that verify that the connection to the RabbitMQ is available. + +## Stats + +We are using a Node module called [swagger-stats](http://swaggerstats.io/). +It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alerting. +Those metrics are available at `/swagger-stats/metrics`. + +For more information about this module, visit the [official swagger-stat page](http://swaggerstats.io/docs.html). + +## Docker +It is possible to run this service using Docker containers, using the `docker-compose.yml` and `Dockerfile` files. +For more information, refer to the project [service-email][add a link] \ No newline at end of file diff --git a/docs/architecture/services/media-library.md b/docs/architecture/services/media-library.md index e69de29..64a2e0d 100644 --- a/docs/architecture/services/media-library.md +++ b/docs/architecture/services/media-library.md @@ -0,0 +1,40 @@ +# Media library service + +## What it does + +This service allows to upload a file in the configured bucket of a defined instance of [Minio](https://min.io/) (compatible with S3). + +## How it works + + + +The entrypoint of the service is a REST API provided by a [NestJS](https://github.com/nestjs/nest) application. The service uses the [Javascript MinIO SDK](https://docs.min.io/docs/javascript-client-quickstart-guide.html) to interact with a running instance of Minio. + +Before uploading the file, it makes sure that the specified bucket is created. If it is not the case, it creates it with a `public read access`. + +The files are classified in sub-buckets as following `/<specified-bucket-name>/<year-YYYY>/<month-MM>/`. + +The uploaded files keep there original name but are prefixed by an md5 computed based on their content with gives the following pattern for file names: `<md5>-<original-name>`. This means that if we upload twice the exact same picture, with the same name there will be only on file stored in MinIO. + +## API documentation + +NestJS provides a [swagger module](https://docs.nestjs.com/recipes/swagger) that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. + +## Service health + +NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predefined or custom health indicators. It exposes the health status of the service at `/health`. +This service will return a `200` http status code when all indicators are healthy. Otherwise it will return a `503` http status code. + +For this service we implemented a custom health indicator that checks the connection to MinIO giving the total number of buckets when the connection is succesful. + +## Stats + +We are using a Node module called [swagger-stats](http://swaggerstats.io/). +It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alerting. +Those metrics are available at `/swagger-stats/metrics`. + +For more information about this module, visit the [official swagger-stat page](http://swaggerstats.io/docs.html). + +## Docker +It is possible to run this service using Docker containers, using the `docker-compose.yml` and `Dockerfile` files. +For more information, refer to the project [service-media-library][add a link] \ No newline at end of file diff --git a/docs/architecture/services/organizations.md b/docs/architecture/services/organizations.md index f04d41c..0637a09 100644 --- a/docs/architecture/services/organizations.md +++ b/docs/architecture/services/organizations.md @@ -1,7 +1,5 @@ # Organizations service - - ## What it does This service provides a list of organizations with different information about it (such as description, logo..etc). In our application, one organization is usually a provider of data, used in the Portal Open Data. It can be a public actor or a private one. @@ -15,11 +13,11 @@ The entrypoint of the service is a REST API provided by a [NestJS](https://githu ## API documentation -NestJS provides a swagger module that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. +NestJS provides a [swagger module](https://docs.nestjs.com/recipes/swagger) that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. ## Service health -NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predifined or custom health indicators. It exposes the health status of the service at `/health`. +NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predefined or custom health indicators. It exposes the health status of the service at `/health`. This service will return a `200` http status code when all indicators are healthy. Otherwise it will return a `503` http status code. For this service we declared an health indicator that verifies that it can connect to the database. @@ -27,7 +25,7 @@ For this service we declared an health indicator that verifies that it can conne ## Stats We are using a Node module called [swagger-stats](http://swaggerstats.io/). -It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alterting. +It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alerting. Those metrics are available at `/swagger-stats/metrics`. For more information about this module, visit the [official swagger-stat page](http://swaggerstats.io/docs.html). diff --git a/docs/architecture/services/resources.md b/docs/architecture/services/resources.md index 836f9f4..2b65ea8 100644 --- a/docs/architecture/services/resources.md +++ b/docs/architecture/services/resources.md @@ -17,11 +17,11 @@ The entrypoint of the service is a REST API provided by a [NestJS](https://githu ## API documentation -NestJS provides a swagger module that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. +NestJS provides a [swagger module](https://docs.nestjs.com/recipes/swagger) that can be easily integrated. Using specific annotations alongside your endpoints declaration, this module will automatically generates a swagger documentation, reachable at `/api-doc`. ## Service health -NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predifined or custom health indicators. It exposes the health status of the service at `/health`. +NestJS provides a [health module](https://github.com/nestjs/terminus) based on Terminus, that gives you the opportunity to declare predefined or custom health indicators. It exposes the health status of the service at `/health`. This service will return a `200` http status code when all indicators are healthy. Otherwise it will return a `503` http status code. For this service we declared an health indicator that verifies that it can connect to the database. @@ -29,7 +29,7 @@ For this service we declared an health indicator that verifies that it can conne ## Stats We are using a Node module called [swagger-stats](http://swaggerstats.io/). -It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alterting. +It traces API calls, monitors API performance and usage statistics. It exposes the metrics in different formats, such as Prometheus format, so you may use Prometheus and Graphana for API monitoring and alerting. Those metrics are available at `/swagger-stats/metrics`. For more information about this module, visit the [official swagger-stat page](http://swaggerstats.io/docs.html). diff --git a/docs/architecture/uml-test.md b/docs/architecture/uml-test.md deleted file mode 100644 index 3324a5b..0000000 --- a/docs/architecture/uml-test.md +++ /dev/null @@ -1,4 +0,0 @@ -```plantuml format="png" classes="uml myDiagram" alt="My super diagram placeholder" title="My super diagram" width="300px" height="300px" - Goofy -> MickeyMouse: calls - Goofy <-- MickeyMouse: responds -``` \ No newline at end of file diff --git a/docs/assets/mail-service.png b/docs/assets/mail-service.png new file mode 100644 index 0000000000000000000000000000000000000000..8729bfa95ca0ba053de7fc93efe1c81dae7db2db GIT binary patch literal 30655 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 literal 0 HcmV?d00001 diff --git a/docs/assets/media-library-service.png b/docs/assets/media-library-service.png new file mode 100644 index 0000000000000000000000000000000000000000..b13811342853ec729e33b309c3349d09b7f8fae9 GIT binary patch literal 14544 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	%i|Q8bHiQX9Y6YF2cX;_&c+bm>G05-k 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 RJD&l6s*0Klm2zg#{|7{bl8FES literal 0 HcmV?d00001 -- GitLab