diff --git a/docs/components/indexers/editorial-content.md b/docs/components/indexers/editorial-content.md index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e9f31c3987b01e6c61cfd89599a00f74201a7e4b 100644 --- a/docs/components/indexers/editorial-content.md +++ b/docs/components/indexers/editorial-content.md @@ -0,0 +1,30 @@ +# Editorial Content Indexer + +## Features + +This indexer provides methods to index in Elasticsearch the editorial content (pages, posts) that is produced with the Ghost CMS. It relies on Ghost's "Custom Integrations" feature, cf. https://ghost.org/docs/api/v2/webhooks/. + +It provides two indexation strategies: +* full +* incremental (adding/updating/deleting pages or posts) + + +As an additional feature, it includes in the Elasticsearch index the *relations* of a given post or page to other posts, pages and datasets. + + +## Requirements + +* A working Ghost installation +* An Admin API Key (provided by Ghost, when configuring a custom integration) +* A working Elasticsearch installation + + +## Implementation + +The indexer is developed in Python, using the Flask framework to expose an API. The authentified access to the Ghost API requires a JWT which is generated with the [JSON Web Token JavaScript module](https://www.npmjs.com/package/jsonwebtoken) + +## TODO +* see whether the JWT could be generated in Python +* understand why a `get_content` is performed despite the content being pushed when the event is fired +* implement the support for multiple languages (EN, FR, ...) +* exploit logs \ No newline at end of file diff --git a/docs/components/off-the-shelf-apps/api-gateway.md b/docs/components/off-the-shelf-apps/api-gateway.md index cb6977bf32376ba469a5dfcf308acd4b818c96be..2fe1e2ff0cad7f161b9540c09658811d4b56aefd 100644 --- a/docs/components/off-the-shelf-apps/api-gateway.md +++ b/docs/components/off-the-shelf-apps/api-gateway.md @@ -1,6 +1,28 @@ # API Gateway -### TODO +## Why Kong ? -* Explain the reasons why Kong was chosen -* Explain which features are used, in particular the AUTHN layer +* it is Open Source +* based on Nginx, a widely known Web Server / Reverse Proxy +* it can be administrated via a dedicated admin REST API +* it can be deployed in a High Availability fashion +* it can be extended by various plugins; a Plugin Development Kit is provided +* it provides several interesting features: load balancing (with active and passive healthcheck), + +## Features + +* Load balancer with active healthchecks +* Plugins : + * jwt + * cors + * bot-detection (never tested!) + * prometheus + * key-auth, in order to let (micro-)services authenticate themselves with respect to other (micro-)services + * request-transformer, in order to issue authenticated requests towards Matomo + * acl, in order to: + - let (micro-)service use some potentially dangerous features exposed by other (micro-)services + - let the back-office team preview draft posts and access the Admin GUI + +## Setup + +A Python script allows the administrator to set up the proper configuration, according to the various environments. diff --git a/docs/miscellaneous/accessibility.md b/docs/miscellaneous/accessibility.md index 31c413a0ec1fd9a2972fa98c558cc83ba2d315de..e5238072ebe413b96f5caf23e0147040623dbe13 100644 --- a/docs/miscellaneous/accessibility.md +++ b/docs/miscellaneous/accessibility.md @@ -21,9 +21,8 @@ pa11y https://data.beta.grandlyon.com/fr/accueil --ignore "warning;notice" npm install -g pa11y-ci ``` -Then create a **.pa11y1** json file. - -```bash +Then create a **.pa11yci** json file. +``` { "urls": [ "https://data.beta.grandlyon.com/fr/accueil"