From 737baa82ff723860dd1dacaad131541636be5ab8 Mon Sep 17 00:00:00 2001
From: Alessandro Cerioni <acerioni@grandlyon.com>
Date: Mon, 20 Jan 2020 10:52:57 +0100
Subject: [PATCH] Converged tree, naming ...

---
 docs/assets/mail-service.png                  | Bin 30655 -> 0 bytes
 docs/components/core/legacy-auth.md           |   2 +
 .../admin-gui.md                              |   5 +++
 .../{specific-apps => custom-apps}/web-app.md |   9 +++++
 ...gacy-auth-middleware.md => legacy-auth.md} |   0
 .../miscellaneous/maintenance-page.md         |   0
 .../off-the-shelf-apps/elasticsearch.md       |   1 +
 .../proxies/web-mapping-services.md           |   0
 docs/components/services/changelog.md         |   8 ++--
 docs/components/services/credits.md           |  12 ++++--
 .../services/csv-catalog-downloader.md        |  22 +++++++++++
 .../services/{mail.md => mailer.md}           |  37 +++++++++++-------
 .../{resources.md => resources-helper.md}     |   0
 docs/components/services/reuses.md            |   0
 .../services/social-media-share-helper.md     |   0
 docs/overview/index.md                        |  24 +++++++++---
 16 files changed, 91 insertions(+), 29 deletions(-)
 delete mode 100644 docs/assets/mail-service.png
 rename docs/components/{specific-apps => custom-apps}/admin-gui.md (95%)
 rename docs/components/{specific-apps => custom-apps}/web-app.md (97%)
 rename docs/components/middlewares/{legacy-auth-middleware.md => legacy-auth.md} (100%)
 create mode 100644 docs/components/miscellaneous/maintenance-page.md
 create mode 100644 docs/components/proxies/web-mapping-services.md
 rename docs/components/services/{mail.md => mailer.md} (57%)
 rename docs/components/services/{resources.md => resources-helper.md} (100%)
 create mode 100644 docs/components/services/reuses.md
 create mode 100644 docs/components/services/social-media-share-helper.md

diff --git a/docs/assets/mail-service.png b/docs/assets/mail-service.png
deleted file mode 100644
index 8729bfa95ca0ba053de7fc93efe1c81dae7db2db..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30655
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
Hl+XkK9eX5-

diff --git a/docs/components/core/legacy-auth.md b/docs/components/core/legacy-auth.md
index b641de0..63139e1 100644
--- a/docs/components/core/legacy-auth.md
+++ b/docs/components/core/legacy-auth.md
@@ -1 +1,3 @@
 # Legacy AUTH
+
+aliases & ES
diff --git a/docs/components/specific-apps/admin-gui.md b/docs/components/custom-apps/admin-gui.md
similarity index 95%
rename from docs/components/specific-apps/admin-gui.md
rename to docs/components/custom-apps/admin-gui.md
index 7cd0892..4422a95 100644
--- a/docs/components/specific-apps/admin-gui.md
+++ b/docs/components/custom-apps/admin-gui.md
@@ -81,3 +81,8 @@ docker-compose --project-name admin-gui up
 ## Authentication
 
 It uses the same authentication methods as the portail data web app, so if you have an account you will be able to log in. However only a user belongging to the admin group will be able to create, modify and delete entities. The groups are managed by the api gateway, for more information refer to the [Authentication and Authorization](../../miscellaneous/authentication&authorization.md) section.
+
+
+## TO DEVELOP
+
+The management of images w/ respect to the Organizations and Credits services on the one hand, the Media Library on the other.
diff --git a/docs/components/specific-apps/web-app.md b/docs/components/custom-apps/web-app.md
similarity index 97%
rename from docs/components/specific-apps/web-app.md
rename to docs/components/custom-apps/web-app.md
index 66c7600..a226ecb 100644
--- a/docs/components/specific-apps/web-app.md
+++ b/docs/components/custom-apps/web-app.md
@@ -53,3 +53,12 @@ So we used...Elasticsearch. It is super fast and even have geographical research
 ## Credits
 
 ## Licence
+
+
+### TODO
+
+bannière accés restreint
+drafts
+MVT+WMS
+listing of data accesses ?
+button for license ?
diff --git a/docs/components/middlewares/legacy-auth-middleware.md b/docs/components/middlewares/legacy-auth.md
similarity index 100%
rename from docs/components/middlewares/legacy-auth-middleware.md
rename to docs/components/middlewares/legacy-auth.md
diff --git a/docs/components/miscellaneous/maintenance-page.md b/docs/components/miscellaneous/maintenance-page.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/components/off-the-shelf-apps/elasticsearch.md b/docs/components/off-the-shelf-apps/elasticsearch.md
index e69de29..7af3f92 100644
--- a/docs/components/off-the-shelf-apps/elasticsearch.md
+++ b/docs/components/off-the-shelf-apps/elasticsearch.md
@@ -0,0 +1 @@
+Quid de la couche AUTHZ ?
diff --git a/docs/components/proxies/web-mapping-services.md b/docs/components/proxies/web-mapping-services.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/components/services/changelog.md b/docs/components/services/changelog.md
index 1d58de4..d81dd7b 100644
--- a/docs/components/services/changelog.md
+++ b/docs/components/services/changelog.md
@@ -2,13 +2,13 @@
 
 ## Features
 
-This service allows end-users to keep track of the improvements that are applied to this project throughout its development. improvements are classified by three categories:
+This service allows end-users to keep track of the improvements that are applied to this project throughout its development. Such improvements are classified by three categories:
 
 1. bugfixes
 2. minor improvements
 3. major improvements
 
-Information it typically entered by developers and eventually presented to end-users via a dedicated page of data.grandlyon.com Web Portal.
+Information is typically entered by developers and presented to end-users via a dedicated page of data.grandlyon.com Web Portal.
 
 A record in the underlying database includes the following information:
 
@@ -20,7 +20,7 @@ A record in the underlying database includes the following information:
 * `bugFixes`: a list of bugfixes;
 * `minorImprovements`: a list of minor improvements;
 * `majorImprovements`: a list of major improvements;
-* `language`: the language it is typed in, either French of English. In fact, each changelog event is entered twice, once in French, once in English, in order for the log to be bilingual.
+* `language`: the language in which information is typed in, either French of English. In fact, each changelog event is entered twice, once in French, once in English, in order for the resulting log to be bilingual.
 
 Bugfixes, minor and major improvements are simply modeled as strings of characters.
 
@@ -30,7 +30,7 @@ This service has no dependency on other components.
 
 ## Endpoints
 
-This service exposes one single endpoint, `/changelog`, supporting all the CRUD methods in a RESTful fashion.
+This service exposes one single endpoint, `/changelog`, supporting all the CRUD methods in a RESTful fashion. An healthcheck endpoint is exposed as well, `/health`, returning a `200` HTTP code when all indicators are healthy, `503` in the opposite case. The service is considered to be healthy if the underlying database is up.
 
 ## Implementation
 The service is implemented using the [NestJS](https://nestjs.com/) framework. We refer the reader to the [NestJS-based micro-services](../../miscellaneous/nestjs-micro-services.md) page for further details concerning the latter framework and the features it provides.
diff --git a/docs/components/services/credits.md b/docs/components/services/credits.md
index 1fbced9..7a3da9f 100644
--- a/docs/components/services/credits.md
+++ b/docs/components/services/credits.md
@@ -2,7 +2,7 @@
 
 ## Features
 
-This service allows one to manage a catalog of the Open Source initiatives enabling and powering this development project.
+This service allows the editorial team to manage a catalog of the Open Source initiatives enabling and powering this development project.
 
 Each record of the catalog includes the following information:
 
@@ -22,10 +22,14 @@ This service has no dependency on other components.
 
 The service provides two endpoints,
 
-1. `/credits`
-2. `/links`
+1. `/credits`;
+2. `/links`,
 
-allowing one to perform CRUD operations on credits and links in a RESTful manner.
+allowing one to perform CRUD operations on credits and links in a RESTful manner. Moreover, an healtcheck endpoint is provided,
+
+3. `/health`,
+
+returning a `200` HTTP code if the API is healthy, `503` otherwise. For the service to be healthy, the underlying database must be up.
 
 ## Implementation
 
diff --git a/docs/components/services/csv-catalog-downloader.md b/docs/components/services/csv-catalog-downloader.md
index e69de29..060155d 100644
--- a/docs/components/services/csv-catalog-downloader.md
+++ b/docs/components/services/csv-catalog-downloader.md
@@ -0,0 +1,22 @@
+# CSV Catalog Downloader
+
+## Features
+
+This service allows end-users to download a CSV export of the metadata catalog. Such export is generated by submitting a query to a dedicated endpoint of one of the HTTP APIs exposed by GeoNetwork. As the latter query is typically resolved by GeoNetwork in a few minutes time, this service was initially conceived as a **cache layer**, preventing end-users from waiting for such a considerable amount of time. Beyond acting as a cache layer, this service also performs the following transformations:
+
+* the column separator used by GeoNetwork, `###`, is replaced by a more conventional comma;
+* the exported CSV file is encoded either in UTF-8 or WINDOWS-1252 depending on the `User-Agent` header of the incoming requests.
+
+data.grandlyon.com's metadata catalog being refreshed at most once per day, overnight, this service refreshes its cache with the same frequency.
+
+## Dependencies
+
+This service only depends on GeoNetwork.
+
+## Endpoints
+
+The service exposes only one endpoint, `/`, returning a CSV file as attachment.
+
+## Implementation
+
+The service is implemented in the Python language, using [Flask](https://palletsprojects.com/p/flask/) as Web framework, [Gunicorn](https://gunicorn.org/) as WSGI HTTP Server and the [Advanced Python Scheduler](https://apscheduler.readthedocs.io/en/stable/) to schedule daily updates of the cache.
diff --git a/docs/components/services/mail.md b/docs/components/services/mailer.md
similarity index 57%
rename from docs/components/services/mail.md
rename to docs/components/services/mailer.md
index f744854..b4ec516 100644
--- a/docs/components/services/mail.md
+++ b/docs/components/services/mailer.md
@@ -1,9 +1,27 @@
 # Mail service
 
-## What it does
+## Features
 
 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.
 
+
+## Dependencies
+
+## Endpoints
+
+`/contact`: formulaire de contact
+
+`/feedback`:
+
+`/send`
+
+
+`/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 SMTP Server is available.
+
+## Implementation
+
+
 ## How it works
 
 ![mail-service](../../assets/mail-service.png)
@@ -16,21 +34,10 @@ However the service does not send this JSON directly to the distant SMTP server.
 
 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`.
+## Templates
 
-For more information about this module, visit the [official swagger-stat page](http://swaggerstats.io/docs.html).
+## AUTHZ
 
-## 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
+email-writer
diff --git a/docs/components/services/resources.md b/docs/components/services/resources-helper.md
similarity index 100%
rename from docs/components/services/resources.md
rename to docs/components/services/resources-helper.md
diff --git a/docs/components/services/reuses.md b/docs/components/services/reuses.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/components/services/social-media-share-helper.md b/docs/components/services/social-media-share-helper.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/overview/index.md b/docs/overview/index.md
index f672c19..855d87c 100644
--- a/docs/overview/index.md
+++ b/docs/overview/index.md
@@ -40,7 +40,7 @@ The data.grandlyon.com's Web Portal includes the following main features:
 
 Concerned entity | ID - Description | Users
 --- | ---  | ---
-Datasets | F1 - Presenting metadata (title, description, terms, ...) <br> F2 - Showing tabular views of data (if applicable) <br> F3 - Showing map views of data (if applicable) <br> F4 - Showing linked resources (APIs, files) <br> F5 - Performing full-text searches against data and metadata <br> F6 - Performing faceted searches against metadata <br> F7 - Composing custom queries against the Core APIs | end-users
+Datasets | F0 - Download the entire dataset catalog as a CSV file <br> F1 - Presenting metadata (title, description, terms, ...) <br> F2 - Showing tabular views of data (if applicable) <br> F3 - Showing map views of data (if applicable) <br> F4 - Showing linked resources (APIs, files) <br> F5 - Performing full-text searches against data and metadata <br> F6 - Performing faceted searches against metadata <br> F7 - Composing custom queries against the Core APIs | end-users
 Users  | F8 - Creating/updating/deleting accounts <br> F9 - Performing logins and logouts <br> F10 - Gaining access to restricted-access resources <br> | end-users
 Editorial Content | F11 - Editing static pages (approach, terms of use, ...) <br> F12 - Displaying static pages (approach, terms of use, ...) <br> F13 - Editing articles <br> F14 - Displaying articles <br> F15 - Editing the catalog of partners (data producers, ...) <br> F16 - Displaying the catalog of partners (data producers, ...) <br> F17 - Editing the catalog of data reuses (applications, websites, articles, ...) <br> F18 - Displaying the catalog of data reuses (applications, websites, articles, ...) <br> F19 - Editing the catalog of the Open Source initiatives powering this project <br> F20 - Displaying the catalog of the Open Source initiatives powering this project | back-office <br> end-users <br> back-office <br> end-users <br> back-office <br> end-users <br> back-office <br> end-users <br> back-office <br> end-users
 Support | F21 - Allowing users to contact the user support | end-users
@@ -79,7 +79,7 @@ The following table lists, in alphabetical order, the components of data.grandly
 
 ID | Name  | Type | Website | Usage
 --- | --- | --- | --- | ---
-C1 | Legacy AUTH | specific | | AUTHN/AUTHZ service
+C1 | Legacy AUTH | custom | | AUTHN/AUTHZ service
 C2 | PostgreSQL + PostGIS | off-the-shelf |  [Link](https://postgis.net/) | Data Source
 C3 | GeoNetwork | off-the-shelf |  [Link](https://www.geonetwork-opensource.org/) | Metadata Catalog
 C4 | MapServer | off-the-shelf | [Link](https://mapserver.org/) | WMS and MVT Server
@@ -112,7 +112,7 @@ M1 | Legacy AUTH | ... | ... | Facilitating the interaction between the Web Port
 
 ID | Name | Repo | Doc | Usage | Deps
 --- | --- | --- | --- | --- | ---
-P1 | Map Proxy | ... | ... | Proxying requests that the Web Portal performs against the cartographic Web Services (WMS, MVT) hosted by data.grandlyon.com's Core macro-component| C4
+P1 | Map Proxy | ... | ... | Proxying requests that the Web Portal performs against the cartographic Web Services (WMS, MVT) hosted by data.grandlyon.com's Core macro-component| A1, C4
 
 
 
@@ -142,19 +142,31 @@ ID | Name | Repo | Doc | Usage | Deps
 S1 | Authentication | ...  | [Link](../components/services/authentication.md) | Allowing users to create accounts and to perform logins and logouts | A3, S5
 S2 | Changelog | [Link](https://gitlab.alpha.grandlyon.com/refonte-data/service-changelog)  | [Link](../components/services/changelog.md) | Keeping track of the new features available to users throughout the developments|
 S3 | Credits | ... | [Link](../components/services/credits.md) | Catalog of the Open Source initiatives powering the data.grandlyon.com project |  |
-S4 | CSV Catalog Downloader | ... | ... |  Allowing users to download cached CSV exports of the metadata catalog | C3 |
-S5 | Mail | ... | [Link](../components/services/mail.md) | Sending e-mails to both end- and back-office users | A6
+S4 | CSV Catalog Downloader | ... | [Link](../components/services/csv-catalog-downloader.md) |  Allowing users to download cached CSV exports of the metadata catalog | C3 |
+S5 | Mailer | ... | [Link](../components/services/mail.md) | Sending e-mails to both end- and back-office users | A6
 S6 | Media Library | ... | ... | Managing the images shown across the various pages of the Web Portal (organizations, posts, ...) |
 S7 | Organizations | ... | ... | A catalog of the partners of the data.grandlyon.com, typically Data Providers | S6
 S8 | Resources Helper | ... | ... | Assisting users in the composition of custom queries against the Core APIs |
 S9 | Reuses | ...  | ...  | A catalog of the known reuses of the data shared through data.grandlyon.com | S6
+S10 | Social Media Share Helper
 
-### Specific applications
+### Custom applications
 ID | Name | Repo | Doc | Usage | Deps
 --- | --- | --- | --- | --- | ---
 D1 | Web App | ... | ... | Web Application representing the actual Web Portal as seen by its end-users | S[1,9]
 D2 | Admin GUI | ... | ... |  Back-office oriented web application allowing users to administrate some of the editorial content as well as the configuration of some functionality | S[1,3], S[6,9]
 
+### Miscellaneous
+
+ID | Name | Repo | Doc | Usage | Deps
+--- | --- | --- | --- | --- | ---
+M1 | Maintenance Page | ... | ... |
 
 <!-- <span id="test">mon test</span>
 <a href='#test'>link</a> -->
+
+
+# TODO
+
+* Elasticsearch -> off-the-shelf app + custom cache & AUTHZ layer
+* Scripts related to the Kong setup
-- 
GitLab