Skip to content
Snippets Groups Projects
Commit 48ffd05c authored by Fabien FORESTIER's avatar Fabien FORESTIER
Browse files

Merge branch 'master' into 'doc-webapp'

# Conflicts:
#   docs/miscellaneous/accessibility.md
parents ff03c37c 9696e74c
No related branches found
No related tags found
1 merge request!14Doc webapp
# 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
# 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.
......@@ -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"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment