Documentation

This commit is contained in:
Éloi Rivard 2020-11-06 11:44:25 +01:00
parent dbf1cb14b8
commit 67be75435a
26 changed files with 624 additions and 97 deletions

View file

@ -33,6 +33,11 @@ python39:
stage: test
script: tox -e py39
doc:
image: python:3.9
stage: test
script: tox -e doc
coverage:
image: python:3.9
stage: test

11
.readthedocs.yml Normal file
View file

@ -0,0 +1,11 @@
---
version: 2
python:
install:
- method: pip
path: .
requirements:
- recommonmark
- sphinx
- sphinx-rtd-theme
- sphinx-issues

View file

@ -1,34 +0,0 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- Login page is responsive. #1
- Adapt mobile keyboards to login page fields. #2
- Password recovery interface. #3
- User profile interface. #4
- Renamed the project *canaille*. #5
- Command to remove old tokens. #17
- Improved password recovery email. #14 #26
- Use flask `SERVER_NAME` configuration variable instead of `URL`. #24
- Improved consents page. #27
- Admin user page. #8
- Project logo. #29
### Fixed
- Form translations. #19 #23
- Avoid to use Google Fonts. #21
### Removed
- 'My tokens' page. #22
## [0.0.1] - 2020-10-21
### Added
- Initial release.

42
CHANGES.rst Normal file
View file

@ -0,0 +1,42 @@
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_,
and this project adheres to `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_.
[Unreleased]
============
Added
*****
- Login page is responsive. :issue:`1`
- Adapt mobile keyboards to login page fields. :issue:`2`
- Password recovery interface. :issue:`3`
- User profile interface. :issue:`4`
- Renamed the project *canaille*. :issue:`5`
- Command to remove old tokens. :issue:`17`
- Improved password recovery email. :issue:`14` :issue:`26`
- Use flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`
- Improved consents page. :issue:`27`
- Admin user page. :issue:`8`
- Project logo. :pr:`29`
Fixed
*****
- Form translations. :issue:`19` :issue:`23`
- Avoid to use Google Fonts. :issue:`21`
Removed
*******
- 'My tokens' page. :issue:`22`
[0.0.1] - 2020-10-21
====================
Added
*****
- Initial release.

View file

@ -1,20 +1,27 @@
# Contribute
Contribute
==========
Contributions are welcome!
## Unit tests
Unit tests
----------
To run the tests, you just need to run `tox`. Everything must be green before patches get merged.
## Style
Style
-----
We use `black` to format our code. Please apply `black` on your patches before submiting them.
## Development environment
Development environment
-----------------------
To try a development environment, you can run the docker image and then open https://127.0.0.1:5000
You can then connect with user *admin* and password *admin* to access an admin account, or user *user* and password *user* for a regular one.
```bash
cp canaille/conf/config.sample.toml canaille/conf/config.toml
cp canaille/conf/oauth-authorization-server.sample.json canaille/conf/oauth-authorization-server.json
cp canaille/conf/openid-configuration.sample.json canaille/conf/openid-configuration.json
docker-compose up
```
.. code-block:: console
cp canaille/conf/config.sample.toml canaille/conf/config.toml
cp canaille/conf/oauth-authorization-server.sample.json canaille/conf/oauth-authorization-server.json
cp canaille/conf/openid-configuration.sample.json canaille/conf/openid-configuration.json
docker-compose up

View file

@ -12,59 +12,18 @@ It aims to be very light, simple to install and simple to maintain. Its main fea
- No additional database required. Everything is stored in your LDAP server;
- The code is easy to read and easy to edit.
## Install
# Screenshots
<div align="center">
<img src="doc/_static/login.png" width="225" alt="Canaille" />
<img src="doc/_static/consent.png" width="225" alt="Canaille" />
<img src="doc/_static/profile.png" width="225" alt="Canaille" />
</div>
# Documentation
⚠ Canaille is under heavy development and may not fit a production environment yet. ⚠
First you need to install the schemas into your LDAP server. There are several ways to achieve this:
### LDAP schemas
As of OpenLDAP 2.4, two configuration methods are available:
- The [deprecated](https://www.openldap.org/doc/admin24/slapdconf2.html) one, based on a configuration file (generally `/etc/ldap/slapd.conf`);
- The new one, based on a configuration directory (generally `/etc/ldap/slapd.d`).
Depending on the configuration method you use with your OpenLDAP installation, you need to chose how to add the canaille schemas:
#### Old fashion: Copy the schemas in your filesystem
```bash
test -d /etc/openldap/schema && sudo cp schema/* /etc/openldap/schema
test -d /etc/ldap/schema && sudo cp schema/* /etc/ldap/schema
sudo service slapd restart
```
#### New fashion: Use slapadd to add the schemas
```bash
sudo slapadd -n0 -l schema/*.ldif
sudo service slapd restart
```
### Web interface
Then you can deploy the code either by copying the git repository or installing the pip package:
```bash
pip install canaille
```
Finally you have to run the website in a WSGI server:
```bash
pip install gunicorn
gunicorn "canaille:create_app()"
```
## Recurrent jobs
You might want to clean up your database to avoid it growing too much. You can regularly delete
expired tokens and authorization codes with:
```
env CONFIG=/path/to/config.toml FASK_APP=canaille flask clean
```
# Contribute
Want to contribute? Take a look on [CONTRIBUTING.md](CONTRIBUTING.md).
- Please have a look on our [documentation](https://canaille.readthedocs.io>);
- To **install** canaille, just take follow the [installation guide](https://canaille.readthedocs.io/install.html);
- To **contribute** canaille, please read the [contribution guide](https://canaille.readthedocs.io/contributing.html>).

0
doc/__init__.py Normal file
View file

BIN
doc/_static/canaille-c.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

24
doc/_static/canaille-c.svg vendored Normal file
View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="69.645px" height="54.915px" viewBox="0 0 69.645 54.915" enable-background="new 0 0 69.645 54.915" xml:space="preserve">
<g id="Calque_1">
</g>
<g id="Calque_2">
<g>
<g>
<g>
<path d="M17.291,35.059c7.947-2.062,16.118-4.836,18.274-5.58c0.355-0.123,0.552-0.191,0.552-0.191s-0.021-0.008-0.033-0.013
l1.615-0.636l0.022,0.009l30.894-12.3c-0.765-3.868-2.33-7.001-4.701-9.4c-2.37-2.396-5.272-4.155-8.706-5.272
C51.775,0.56,48.069,0,44.093,0c-5.671,0-10.56,1.09-14.675,3.27c-4.114,2.179-7.274,5.342-9.482,9.482
c-2.206,4.141-3.308,9.149-3.31,15.031c-7.306,4.08-19.362,5.242-16.067,8.79C2.22,38.362,9.649,37.04,17.291,35.059
L17.291,35.059z M56.193,9.462c4.519-2.259,6.919,4.942,6.919,4.942l-6.919,2.683C56.193,17.087,53.461,10.829,56.193,9.462z"/>
</g>
<path d="M65.646,30.315c-3.754-2.087-8.485-0.733-10.57,3.02c-2.069,3.723-5.992,6.033-10.243,6.033
c-5.117,0-9.466-3.307-11.052-7.89c-5.033,1.66-10.648,3.271-14.916,4.442c3.506,11.002,13.819,18.994,25.968,18.994
c9.893,0,19.025-5.378,23.832-14.03C70.751,37.131,69.398,32.399,65.646,30.315z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
doc/_static/canaille-full.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

151
doc/_static/canaille-full.svg vendored Normal file
View file

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="310.012px" height="192.836px" viewBox="0 0 310.012 192.836" enable-background="new 0 0 310.012 192.836"
xml:space="preserve">
<g id="Calque_1">
</g>
<g id="Calque_2">
<g>
<g>
<g>
<path d="M141.401,67.031c-1.036,0-1.876-0.839-1.876-1.877v-0.576c0-1.039,0.84-1.877,1.876-1.877
c1.037,0,1.877,0.838,1.877,1.877v0.576C143.278,66.192,142.438,67.031,141.401,67.031z"/>
</g>
<g>
<path d="M146.495,64.825c-1.036,0-1.877-0.84-1.877-1.877v-0.726c0-1.037,0.841-1.878,1.877-1.878s1.876,0.841,1.876,1.878
v0.726C148.371,63.985,147.531,64.825,146.495,64.825z"/>
</g>
<g>
<path d="M141.401,60.084c-1.036,0-1.876-0.84-1.876-1.877v-0.902c0-1.037,0.84-1.877,1.876-1.877
c1.037,0,1.877,0.84,1.877,1.877v0.902C143.278,59.244,142.438,60.084,141.401,60.084z"/>
</g>
<g>
<path d="M178.68,64.634c-1.037,0-1.877-0.839-1.877-1.877v-0.534c0-1.037,0.84-1.878,1.877-1.878
c1.036,0,1.876,0.841,1.876,1.878v0.534C180.556,63.795,179.716,64.634,178.68,64.634z"/>
</g>
<g>
<path d="M183.836,60.622c-1.036,0-1.877-0.839-1.877-1.877v-0.538c0-1.038,0.841-1.877,1.877-1.877
c1.037,0,1.877,0.839,1.877,1.877v0.538C185.713,59.783,184.873,60.622,183.836,60.622z"/>
</g>
<g>
<path d="M183.059,68.987c-1.037,0-1.877-0.839-1.877-1.877v-0.585c0-1.037,0.84-1.877,1.877-1.877s1.877,0.84,1.877,1.877v0.585
C184.936,68.148,184.096,68.987,183.059,68.987z"/>
</g>
<g>
<path d="M128.886,75.418c-3.354,0-5.982-3.905-5.982-8.893c0-4.986,2.628-8.893,5.982-8.893c1.48,0,2.895,0.788,3.979,2.218
c0.314,0.415,0.233,1.002-0.18,1.316c-0.413,0.311-1.001,0.231-1.315-0.18c-0.511-0.675-1.356-1.478-2.484-1.478
c-2.226,0-4.105,3.212-4.105,7.016s1.88,7.016,4.105,7.016c0.948,0,1.885-0.598,2.635-1.682c0.294-0.427,0.88-0.537,1.306-0.239
c0.426,0.296,0.532,0.88,0.237,1.306C131.952,74.533,130.47,75.418,128.886,75.418z"/>
</g>
<g>
<path d="M198.465,76.148c-1.621,0-3.164-0.881-4.343-2.479c-0.308-0.418-0.22-1.005,0.197-1.312
c0.419-0.307,1.007-0.221,1.313,0.196c0.815,1.107,1.822,1.717,2.833,1.717c2.478,0,4.569-3.547,4.569-7.746
c0-4.198-2.092-7.745-4.569-7.745c-1.08,0-2.139,0.686-2.984,1.93c-0.295,0.432-0.88,0.536-1.305,0.25
c-0.43-0.292-0.539-0.876-0.25-1.305c1.207-1.774,2.819-2.752,4.539-2.752c3.614,0,6.447,4.227,6.447,9.622
S202.079,76.148,198.465,76.148z"/>
</g>
<path d="M197.699,48.5c-1.048,0-2.069,0.211-3.054,0.58c0.291-1.643,0.455-3.277,0.455-4.894
c0-17.625-15.891-31.964-35.423-31.964c-19.268,0-34.99,13.951-35.416,31.245c-9.102,2.416-22.254,3.108-22.343,3.113
c-5.416,0-9.823,4.494-9.823,10.019c0,5.522,4.403,10.016,9.758,10.016c0.001,0,0.003,0,0.004,0c0,0,0.292,0.021,0.826,0.021
c2.007,0,8.422-0.312,15.12-3.844c-0.176,1.25-0.274,2.549-0.274,3.889c0,10.196,5.366,18.183,12.218,18.183
c1.51,0,2.972-0.411,4.338-1.168c4.103,10.807,15.385,18.152,28.403,18.152c13.543,0,25.289-8.202,28.874-19.58
c1.888,1.684,4.069,2.596,6.337,2.596c6.851,0,12.217-7.986,12.217-18.183C209.916,56.485,204.55,48.5,197.699,48.5z
M151.071,34.389c0-4.873,3.966-8.84,8.84-8.84s8.84,3.967,8.84,8.84c0,0.198-0.011,0.395-0.029,0.59
c-6.045-0.656-11.967-0.56-17.61,0.184C151.085,34.896,151.071,34.64,151.071,34.389z M197.699,81.109
c-1.859,0-3.717-1.127-5.227-3.175c-0.131-0.178-0.297-0.309-0.47-0.425c-0.269-0.503-0.735-0.891-1.341-0.982
c-1.045-0.16-1.983,0.547-2.139,1.571c-1.741,11.398-12.935,19.997-26.035,19.997c-11.934,0-22.169-6.925-25.303-16.946
c0.377-0.428,0.742-0.876,1.086-1.372c0.59-0.855,0.376-2.022-0.477-2.612c-0.853-0.593-2.021-0.378-2.611,0.475
c-1.547,2.237-3.478,3.47-5.437,3.47c-4.589,0-8.464-6.607-8.464-14.429c0-7.819,3.875-14.427,8.464-14.427
c2.329,0,4.075,1.655,5.131,3.045c0.626,0.826,1.804,0.985,2.628,0.36c0.826-0.628,0.987-1.806,0.36-2.631
c-1.203-1.583-2.604-2.767-4.114-3.53c7.621-3.314,16.571-5.104,25.926-5.104c11.449,0,22.27,2.698,30.809,7.578
c-0.492,0.531-0.966,1.104-1.405,1.748c-0.581,0.858-0.356,2.026,0.501,2.608c0.858,0.581,2.027,0.358,2.608-0.5
c1.562-2.307,3.519-3.574,5.509-3.574c4.588,0,8.464,6.607,8.464,14.427C206.163,74.502,202.287,81.109,197.699,81.109z"/>
<path d="M176.928,49.439h-7.507c-0.519,0-0.938,0.419-0.938,0.938v4.396c0,2.588,2.104,4.692,4.69,4.692
c2.588,0,4.693-2.104,4.693-4.692v-4.396C177.867,49.858,177.447,49.439,176.928,49.439z"/>
<path d="M155.156,49.439h-7.508c-0.518,0-0.938,0.419-0.938,0.938v4.396c0,2.588,2.104,4.692,4.691,4.692
s4.691-2.104,4.691-4.692v-4.396C156.094,49.858,155.674,49.439,155.156,49.439z"/>
</g>
<path d="M175.892,79.382c-0.007-0.198-0.045-0.391-0.114-0.572c-0.011-0.024-0.021-0.047-0.03-0.07
c-0.084-0.188-0.197-0.357-0.339-0.505c-0.01-0.01-0.013-0.022-0.021-0.031c-0.01-0.009-0.021-0.012-0.031-0.021
c-0.144-0.138-0.313-0.249-0.503-0.331c-0.029-0.013-0.056-0.023-0.087-0.035c-0.037-0.014-0.07-0.032-0.109-0.044l-24.385-7.144
c-0.914-0.265-1.877,0.256-2.146,1.173c-0.07,0.239-0.083,0.479-0.053,0.712c-0.007,0.059-0.019,0.115-0.019,0.176
c0,6.959,6.903,12.622,15.389,12.622c4.667,0,9.025-1.699,11.957-4.663c0.026-0.027,0.035-0.064,0.061-0.092
c0.093-0.107,0.168-0.227,0.234-0.357c0.033-0.066,0.07-0.13,0.096-0.199c0.01-0.029,0.03-0.051,0.039-0.081
c0.045-0.153,0.06-0.307,0.063-0.458C175.893,79.434,175.892,79.409,175.892,79.382z M151.807,74.682l18.57,5.441
c-1.998,1.109-4.396,1.729-6.934,1.729C157.757,81.853,152.995,78.778,151.807,74.682z"/>
</g>
<g>
<g>
<path d="M122.781,134.04c-1.042-2.062-2.674-3.756-4.85-5.039c-2.16-1.272-4.813-1.918-7.886-1.918
c-3.788,0-7.559,0.784-11.206,2.328c-1.579,0.669-2.449,1.956-2.449,3.621c0,1.022,0.376,1.938,1.084,2.646
c0.708,0.709,1.602,1.084,2.585,1.084c0.323,0,0.696-0.054,1.139-0.165l0.101-0.029c1.423-0.473,2.727-0.832,3.876-1.065
c1.116-0.228,2.423-0.342,3.886-0.342c2.471,0,4.264,0.482,5.332,1.434c0.882,0.79,1.389,2.108,1.512,3.927h-6.043
c-4.93,0-8.767,1.007-11.407,2.991c-2.76,2.077-4.159,4.898-4.159,8.384c0,2.11,0.529,4.011,1.572,5.647
c1.041,1.633,2.468,2.892,4.238,3.741c1.723,0.828,3.616,1.246,5.626,1.246c3.993,0,7.475-1.072,10.388-3.195
c0.196,0.63,0.538,1.198,1.021,1.679c0.79,0.792,1.812,1.208,2.954,1.208c1.131,0,2.156-0.41,2.966-1.188
c0.823-0.792,1.258-1.819,1.258-2.973v-17.446C124.318,138.268,123.802,136.056,122.781,134.04z M107.826,154.824
c-1.951,0-3.367-0.347-4.097-1.002c-0.717-0.642-1.05-1.45-1.05-2.542c0-2.311,2.665-3.481,7.922-3.481h5.331v3.251
c-0.972,1.019-2.149,1.895-3.511,2.607C110.946,154.432,109.4,154.824,107.826,154.824z"/>
<path d="M160.462,133.852c-0.994-2.078-2.449-3.741-4.324-4.945c-1.885-1.21-4.117-1.823-6.639-1.823
c-2.696,0-5.083,0.58-7.096,1.723c-1.048,0.595-2.063,1.304-3.035,2.121c-0.139-0.869-0.542-1.653-1.186-2.297
c-0.811-0.811-1.844-1.239-2.985-1.239c-1.151,0-2.18,0.436-2.973,1.258c-0.777,0.81-1.188,1.834-1.188,2.967v26.446
c0,1.143,0.417,2.165,1.207,2.953c0.79,0.792,1.813,1.208,2.954,1.208c1.133,0,2.158-0.41,2.966-1.188
c0.823-0.791,1.258-1.82,1.258-2.974V140.06c1.253-1.512,2.587-2.738,3.969-3.647c1.404-0.926,2.96-1.375,4.754-1.375
c3.729,0,5.393,1.892,5.393,6.133v16.892c0,1.144,0.419,2.165,1.208,2.953c0.789,0.791,1.812,1.208,2.954,1.208
c1.132,0,2.157-0.41,2.966-1.188c0.823-0.792,1.259-1.819,1.259-2.973v-17.508C161.923,138.138,161.432,135.884,160.462,133.852z
"/>
<path d="M194.538,134.04c-1.043-2.061-2.673-3.755-4.85-5.039c-2.162-1.272-4.814-1.918-7.887-1.918
c-3.787,0-7.559,0.784-11.206,2.328c-1.579,0.669-2.449,1.956-2.449,3.621c0,1.022,0.375,1.938,1.083,2.646
c0.708,0.71,1.603,1.085,2.587,1.085c0.322,0,0.695-0.054,1.139-0.165l0.101-0.029c1.421-0.473,2.726-0.832,3.877-1.065
c1.114-0.228,2.421-0.342,3.883-0.342c2.471,0,4.266,0.482,5.333,1.434c0.883,0.79,1.391,2.108,1.512,3.927h-6.043
c-4.93,0-8.767,1.007-11.407,2.991c-2.761,2.077-4.16,4.898-4.16,8.384c0,2.11,0.53,4.011,1.574,5.647
c1.04,1.633,2.467,2.892,4.238,3.741c1.723,0.828,3.615,1.246,5.624,1.246c3.994,0,7.477-1.072,10.389-3.195
c0.195,0.63,0.539,1.198,1.021,1.679c0.789,0.791,1.812,1.208,2.956,1.208c1.13,0,2.156-0.41,2.965-1.188
c0.822-0.791,1.258-1.82,1.258-2.974v-17.446C196.074,138.269,195.557,136.056,194.538,134.04z M179.583,154.824
c-1.951,0-3.368-0.347-4.098-1.002c-0.716-0.642-1.05-1.45-1.05-2.542c0-2.311,2.666-3.481,7.922-3.481h5.331v3.251
c-0.972,1.02-2.15,1.895-3.511,2.608C182.702,154.432,181.157,154.824,179.583,154.824z"/>
<g>
<path d="M207.2,127.391c-1.153,0-2.181,0.435-2.973,1.258c-0.777,0.807-1.189,1.834-1.189,2.967v26.446
c0,1.144,0.419,2.166,1.208,2.953c0.79,0.792,1.813,1.208,2.954,1.208c1.131,0,2.157-0.41,2.965-1.188
c0.823-0.791,1.259-1.82,1.259-2.974v-26.446c0-1.182-0.418-2.224-1.209-3.018C209.423,127.809,208.381,127.391,207.2,127.391z"
/>
<path d="M210.648,116.086c-0.871-0.871-1.978-1.332-3.201-1.332h-0.371c-1.223,0-2.329,0.461-3.201,1.332
c-0.87,0.87-1.33,1.977-1.33,3.2v0.246c0,1.222,0.46,2.329,1.33,3.2c0.872,0.871,1.979,1.331,3.201,1.331h0.371
c1.224,0,2.33-0.46,3.199-1.331c0.872-0.87,1.332-1.979,1.332-3.2v-0.246C211.979,118.063,211.519,116.956,210.648,116.086z"/>
</g>
<path d="M226.305,115.037c-0.791-0.791-1.833-1.209-3.016-1.209c-1.154,0-2.182,0.436-2.973,1.258
c-0.777,0.808-1.188,1.833-1.188,2.967v40.009c0,1.144,0.417,2.166,1.207,2.953c0.789,0.791,1.812,1.208,2.954,1.208
c1.132,0,2.157-0.41,2.965-1.188c0.824-0.791,1.259-1.82,1.259-2.974v-40.009C227.513,116.871,227.096,115.827,226.305,115.037z"
/>
<path d="M242.641,115.037c-0.79-0.791-1.833-1.209-3.015-1.209c-1.154,0-2.183,0.436-2.973,1.258
c-0.778,0.808-1.189,1.833-1.189,2.967v40.009c0,1.144,0.418,2.166,1.207,2.953c0.79,0.791,1.812,1.208,2.955,1.208
c1.132,0,2.157-0.41,2.966-1.188c0.823-0.791,1.259-1.82,1.259-2.974v-40.009C243.851,116.871,243.433,115.827,242.641,115.037z"
/>
<path d="M276.736,152.357c-0.623,0-1.204,0.132-1.729,0.393c-1.141,0.571-2.321,1.014-3.513,1.315
c-1.176,0.299-2.584,0.45-4.19,0.45c-2.881,0-5.122-0.691-6.661-2.055c-1.225-1.085-2.042-2.498-2.477-4.293h19.249
c1.233,0,2.293-0.425,3.065-1.227c0.758-0.788,1.158-1.803,1.158-2.936c0-2.991-0.627-5.8-1.867-8.346
c-1.259-2.585-3.128-4.682-5.554-6.231c-2.437-1.557-5.343-2.346-8.639-2.346c-3.517,0-6.54,0.849-8.984,2.524
c-2.429,1.663-4.251,3.875-5.42,6.571c-1.14,2.629-1.717,5.532-1.717,8.628c0,5.533,1.555,9.915,4.622,13.026
c3.071,3.119,7.354,4.698,12.732,4.698c2.584,0,4.745-0.246,6.428-0.732c1.658-0.48,3.355-1.207,5.053-2.165
c1.898-1.096,2.298-2.499,2.298-3.483c0-1.085-0.411-2.034-1.189-2.749C278.657,152.719,277.736,152.357,276.736,152.357z
M258.082,140.83c0.215-1.119,0.593-2.09,1.131-2.897c0.768-1.151,1.692-1.97,2.825-2.503c2.328-1.092,4.754-1.093,7.08-0.001
c1.14,0.536,2.077,1.359,2.865,2.517c0.549,0.804,0.934,1.771,1.151,2.885H258.082z"/>
</g>
<g>
<g>
<path d="M37.663,143.938c7.947-2.062,16.118-4.836,18.274-5.58c0.355-0.123,0.552-0.191,0.552-0.191s-0.021-0.008-0.033-0.013
l1.615-0.636l0.022,0.009l30.894-12.3c-0.765-3.868-2.33-7.001-4.701-9.4c-2.37-2.396-5.272-4.155-8.706-5.272
c-3.433-1.115-7.139-1.675-11.115-1.675c-5.671,0-10.56,1.09-14.675,3.27c-4.114,2.179-7.274,5.342-9.482,9.482
c-2.206,4.141-3.308,9.149-3.31,15.031c-7.306,4.08-19.362,5.242-16.067,8.79C22.592,147.241,30.021,145.919,37.663,143.938
L37.663,143.938z M76.565,118.341c4.519-2.259,6.919,4.942,6.919,4.942l-6.919,2.683
C76.565,125.966,73.833,119.708,76.565,118.341z"/>
</g>
<path d="M86.018,139.194c-3.754-2.087-8.485-0.733-10.57,3.02c-2.069,3.723-5.992,6.033-10.243,6.033
c-5.117,0-9.466-3.307-11.052-7.89c-5.033,1.66-10.648,3.271-14.916,4.442c3.506,11.002,13.819,18.994,25.968,18.994
c9.893,0,19.025-5.378,23.832-14.03C91.123,146.01,89.771,141.278,86.018,139.194z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

BIN
doc/_static/canaille-head.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

79
doc/_static/canaille-head.svg vendored Normal file
View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="117.82px" height="89.625px" viewBox="0 0 117.82 89.625" enable-background="new 0 0 117.82 89.625" xml:space="preserve">
<g id="Calque_1">
</g>
<g id="Calque_2">
<g>
<g>
<g>
<path d="M49.306,54.809c-1.036,0-1.876-0.839-1.876-1.877v-0.576c0-1.039,0.84-1.877,1.876-1.877
c1.037,0,1.877,0.838,1.877,1.877v0.576C51.183,53.97,50.343,54.809,49.306,54.809z"/>
</g>
<g>
<path d="M54.399,52.603c-1.036,0-1.877-0.84-1.877-1.877V50c0-1.037,0.841-1.878,1.877-1.878s1.876,0.841,1.876,1.878v0.726
C56.275,51.763,55.436,52.603,54.399,52.603z"/>
</g>
<g>
<path d="M49.306,47.861c-1.036,0-1.876-0.84-1.876-1.877v-0.902c0-1.037,0.84-1.877,1.876-1.877c1.037,0,1.877,0.84,1.877,1.877
v0.902C51.183,47.021,50.343,47.861,49.306,47.861z"/>
</g>
<g>
<path d="M86.584,52.411c-1.037,0-1.877-0.839-1.877-1.877V50c0-1.037,0.84-1.878,1.877-1.878c1.036,0,1.876,0.841,1.876,1.878
v0.534C88.46,51.572,87.62,52.411,86.584,52.411z"/>
</g>
<g>
<path d="M91.74,48.399c-1.036,0-1.877-0.839-1.877-1.877v-0.538c0-1.038,0.841-1.877,1.877-1.877
c1.037,0,1.877,0.839,1.877,1.877v0.538C93.617,47.561,92.777,48.399,91.74,48.399z"/>
</g>
<g>
<path d="M90.963,56.765c-1.037,0-1.877-0.839-1.877-1.877v-0.585c0-1.037,0.84-1.877,1.877-1.877s1.877,0.84,1.877,1.877v0.585
C92.84,55.926,92,56.765,90.963,56.765z"/>
</g>
<g>
<path d="M36.79,63.195c-3.354,0-5.982-3.905-5.982-8.893c0-4.986,2.628-8.893,5.982-8.893c1.48,0,2.895,0.788,3.979,2.218
c0.314,0.415,0.233,1.002-0.18,1.316c-0.413,0.311-1.001,0.231-1.315-0.18c-0.511-0.675-1.356-1.478-2.484-1.478
c-2.226,0-4.105,3.212-4.105,7.016s1.88,7.016,4.105,7.016c0.948,0,1.885-0.598,2.635-1.682c0.294-0.427,0.88-0.537,1.306-0.239
c0.426,0.296,0.532,0.88,0.237,1.306C39.856,62.311,38.374,63.195,36.79,63.195z"/>
</g>
<g>
<path d="M106.369,63.926c-1.621,0-3.164-0.881-4.343-2.479c-0.308-0.418-0.22-1.005,0.197-1.312
c0.419-0.307,1.007-0.221,1.313,0.196c0.815,1.107,1.822,1.717,2.833,1.717c2.478,0,4.569-3.547,4.569-7.746
c0-4.198-2.092-7.745-4.569-7.745c-1.08,0-2.139,0.686-2.984,1.93c-0.295,0.432-0.88,0.536-1.305,0.25
c-0.43-0.292-0.539-0.876-0.25-1.305c1.207-1.774,2.819-2.752,4.539-2.752c3.614,0,6.447,4.227,6.447,9.622
S109.983,63.926,106.369,63.926z"/>
</g>
<path d="M105.604,36.277c-1.048,0-2.069,0.211-3.054,0.58c0.291-1.643,0.455-3.277,0.455-4.894C103.005,14.339,87.114,0,67.582,0
c-19.268,0-34.99,13.951-35.416,31.245c-9.102,2.416-22.254,3.108-22.343,3.113C4.407,34.358,0,38.853,0,44.377
c0,5.522,4.403,10.016,9.758,10.016c0.001,0,0.003,0,0.004,0c0,0,0.292,0.021,0.826,0.021c2.007,0,8.422-0.312,15.12-3.844
c-0.176,1.25-0.274,2.549-0.274,3.889c0,10.196,5.366,18.183,12.218,18.183c1.51,0,2.972-0.411,4.338-1.168
c4.103,10.807,15.385,18.152,28.403,18.152c13.543,0,25.289-8.202,28.874-19.58c1.888,1.684,4.069,2.596,6.337,2.596
c6.851,0,12.217-7.986,12.217-18.183C117.82,44.263,112.454,36.277,105.604,36.277z M58.976,22.166c0-4.873,3.966-8.84,8.84-8.84
s8.84,3.967,8.84,8.84c0,0.198-0.011,0.395-0.029,0.59c-6.045-0.656-11.967-0.56-17.61,0.184
C58.989,22.674,58.976,22.417,58.976,22.166z M105.604,68.887c-1.859,0-3.717-1.127-5.227-3.175
c-0.131-0.178-0.297-0.309-0.47-0.425c-0.269-0.503-0.735-0.891-1.341-0.982c-1.045-0.16-1.983,0.547-2.139,1.571
c-1.741,11.398-12.935,19.997-26.035,19.997c-11.934,0-22.169-6.925-25.303-16.946c0.377-0.428,0.742-0.876,1.086-1.372
c0.59-0.855,0.376-2.022-0.477-2.612c-0.853-0.593-2.021-0.378-2.611,0.475c-1.547,2.237-3.478,3.47-5.437,3.47
c-4.589,0-8.464-6.607-8.464-14.429c0-7.819,3.875-14.427,8.464-14.427c2.329,0,4.075,1.655,5.131,3.045
c0.626,0.826,1.804,0.985,2.628,0.36c0.826-0.628,0.987-1.806,0.36-2.631c-1.203-1.583-2.604-2.767-4.114-3.53
c7.621-3.314,16.571-5.104,25.926-5.104c11.449,0,22.27,2.698,30.809,7.578c-0.492,0.531-0.966,1.104-1.405,1.748
c-0.581,0.858-0.356,2.026,0.501,2.608c0.858,0.581,2.027,0.358,2.608-0.5c1.562-2.307,3.519-3.574,5.509-3.574
c4.588,0,8.464,6.607,8.464,14.427C114.067,62.279,110.191,68.887,105.604,68.887z"/>
<path d="M84.832,37.217h-7.507c-0.519,0-0.938,0.419-0.938,0.938v4.396c0,2.588,2.104,4.692,4.69,4.692
c2.588,0,4.693-2.104,4.693-4.692v-4.396C85.771,37.636,85.352,37.217,84.832,37.217z"/>
<path d="M63.061,37.217h-7.508c-0.518,0-0.938,0.419-0.938,0.938v4.396c0,2.588,2.104,4.692,4.691,4.692s4.691-2.104,4.691-4.692
v-4.396C63.998,37.636,63.578,37.217,63.061,37.217z"/>
</g>
<path d="M83.796,67.159c-0.007-0.198-0.045-0.391-0.114-0.572c-0.011-0.024-0.021-0.047-0.03-0.07
c-0.084-0.188-0.197-0.357-0.339-0.505c-0.01-0.01-0.013-0.022-0.021-0.031c-0.01-0.009-0.021-0.012-0.031-0.021
c-0.144-0.138-0.313-0.249-0.503-0.331c-0.029-0.013-0.056-0.023-0.087-0.035c-0.037-0.014-0.07-0.032-0.109-0.044l-24.385-7.144
c-0.914-0.265-1.877,0.256-2.146,1.173c-0.07,0.239-0.083,0.479-0.053,0.712c-0.007,0.059-0.019,0.115-0.019,0.176
c0,6.959,6.903,12.622,15.389,12.622c4.667,0,9.025-1.699,11.957-4.663c0.026-0.027,0.035-0.064,0.061-0.092
c0.093-0.107,0.168-0.227,0.234-0.357c0.033-0.066,0.07-0.13,0.096-0.199c0.01-0.029,0.03-0.051,0.039-0.081
c0.045-0.153,0.06-0.307,0.063-0.458C83.797,67.211,83.796,67.187,83.796,67.159z M59.711,62.459l18.57,5.441
c-1.998,1.109-4.396,1.729-6.934,1.729C65.661,69.63,60.899,66.556,59.711,62.459z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
doc/_static/canaille-label.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

77
doc/_static/canaille-label.svg vendored Normal file
View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="261.267px" height="54.915px" viewBox="0 0 261.267 54.915" enable-background="new 0 0 261.267 54.915"
xml:space="preserve">
<g id="Calque_1">
</g>
<g id="Calque_2">
<g>
<g>
<path d="M102.409,25.161c-1.042-2.062-2.674-3.756-4.85-5.039c-2.16-1.272-4.813-1.918-7.886-1.918
c-3.788,0-7.559,0.784-11.206,2.328c-1.579,0.669-2.449,1.956-2.449,3.621c0,1.022,0.376,1.938,1.084,2.646
c0.708,0.709,1.602,1.084,2.585,1.084c0.323,0,0.696-0.054,1.139-0.165l0.101-0.029c1.423-0.473,2.727-0.832,3.876-1.065
c1.116-0.228,2.423-0.342,3.886-0.342c2.471,0,4.264,0.482,5.332,1.434c0.882,0.79,1.389,2.108,1.512,3.927h-6.043
c-4.93,0-8.767,1.007-11.407,2.991c-2.76,2.077-4.159,4.898-4.159,8.384c0,2.11,0.529,4.011,1.572,5.647
c1.041,1.633,2.468,2.892,4.238,3.741c1.723,0.828,3.616,1.246,5.626,1.246c3.993,0,7.475-1.072,10.388-3.195
c0.196,0.63,0.538,1.198,1.021,1.679c0.79,0.792,1.812,1.208,2.954,1.208c1.131,0,2.156-0.41,2.966-1.188
c0.823-0.792,1.258-1.819,1.258-2.973V31.736C103.946,29.389,103.43,27.177,102.409,25.161z M87.454,45.945
c-1.951,0-3.367-0.347-4.097-1.002c-0.717-0.642-1.05-1.45-1.05-2.542c0-2.311,2.665-3.481,7.922-3.481h5.331v3.251
c-0.972,1.019-2.149,1.895-3.511,2.607C90.574,45.553,89.028,45.945,87.454,45.945z"/>
<path d="M140.09,24.973c-0.994-2.078-2.449-3.741-4.324-4.945c-1.885-1.21-4.117-1.823-6.639-1.823
c-2.696,0-5.083,0.58-7.096,1.723c-1.048,0.595-2.063,1.304-3.035,2.121c-0.139-0.869-0.542-1.653-1.186-2.297
c-0.811-0.811-1.844-1.239-2.985-1.239c-1.151,0-2.18,0.436-2.973,1.258c-0.777,0.81-1.188,1.834-1.188,2.967v26.446
c0,1.143,0.417,2.165,1.207,2.953c0.79,0.792,1.813,1.208,2.954,1.208c1.133,0,2.158-0.41,2.966-1.188
c0.823-0.791,1.258-1.82,1.258-2.974V31.181c1.253-1.512,2.587-2.738,3.969-3.647c1.404-0.926,2.96-1.375,4.754-1.375
c3.729,0,5.393,1.892,5.393,6.133v16.892c0,1.144,0.419,2.165,1.208,2.953c0.789,0.791,1.812,1.208,2.954,1.208
c1.132,0,2.157-0.41,2.966-1.188c0.823-0.792,1.259-1.819,1.259-2.973V31.675C141.551,29.259,141.06,27.005,140.09,24.973z"/>
<path d="M174.166,25.161c-1.043-2.061-2.673-3.755-4.85-5.039c-2.162-1.272-4.814-1.918-7.887-1.918
c-3.787,0-7.559,0.784-11.206,2.328c-1.579,0.669-2.449,1.956-2.449,3.621c0,1.022,0.375,1.938,1.083,2.646
c0.708,0.71,1.603,1.085,2.587,1.085c0.322,0,0.695-0.054,1.139-0.165l0.101-0.029c1.421-0.473,2.726-0.832,3.877-1.065
c1.114-0.228,2.421-0.342,3.883-0.342c2.471,0,4.266,0.482,5.333,1.434c0.883,0.79,1.391,2.108,1.512,3.927h-6.043
c-4.93,0-8.767,1.007-11.407,2.991c-2.761,2.077-4.16,4.898-4.16,8.384c0,2.11,0.53,4.011,1.574,5.647
c1.04,1.633,2.467,2.892,4.238,3.741c1.723,0.828,3.615,1.246,5.624,1.246c3.994,0,7.477-1.072,10.389-3.195
c0.195,0.63,0.539,1.198,1.021,1.679c0.789,0.791,1.812,1.208,2.956,1.208c1.13,0,2.156-0.41,2.965-1.188
c0.822-0.791,1.258-1.82,1.258-2.974V31.736C175.702,29.39,175.185,27.177,174.166,25.161z M159.211,45.945
c-1.951,0-3.368-0.347-4.098-1.002c-0.716-0.642-1.05-1.45-1.05-2.542c0-2.311,2.666-3.481,7.922-3.481h5.331v3.251
c-0.972,1.02-2.15,1.895-3.511,2.608C162.33,45.553,160.785,45.945,159.211,45.945z"/>
<g>
<path d="M186.828,18.512c-1.153,0-2.181,0.435-2.973,1.258c-0.777,0.807-1.189,1.834-1.189,2.967v26.446
c0,1.144,0.419,2.166,1.208,2.953c0.79,0.792,1.813,1.208,2.954,1.208c1.131,0,2.157-0.41,2.965-1.188
c0.823-0.791,1.259-1.82,1.259-2.974V22.736c0-1.182-0.418-2.224-1.209-3.018C189.051,18.93,188.009,18.512,186.828,18.512z"/>
<path d="M190.276,7.207c-0.871-0.871-1.978-1.332-3.201-1.332h-0.371c-1.223,0-2.329,0.461-3.201,1.332
c-0.87,0.87-1.33,1.977-1.33,3.2v0.246c0,1.222,0.46,2.329,1.33,3.2c0.872,0.871,1.979,1.331,3.201,1.331h0.371
c1.224,0,2.33-0.46,3.199-1.331c0.872-0.87,1.332-1.979,1.332-3.2v-0.246C191.606,9.184,191.146,8.077,190.276,7.207z"/>
</g>
<path d="M205.933,6.158c-0.791-0.791-1.833-1.209-3.016-1.209c-1.154,0-2.182,0.436-2.973,1.258
c-0.777,0.808-1.188,1.833-1.188,2.967v40.009c0,1.144,0.417,2.166,1.207,2.953c0.789,0.791,1.812,1.208,2.954,1.208
c1.132,0,2.157-0.41,2.965-1.188c0.824-0.791,1.259-1.82,1.259-2.974V9.174C207.141,7.992,206.724,6.948,205.933,6.158z"/>
<path d="M222.269,6.158c-0.79-0.791-1.833-1.209-3.015-1.209c-1.154,0-2.183,0.436-2.973,1.258
c-0.778,0.808-1.189,1.833-1.189,2.967v40.009c0,1.144,0.418,2.166,1.207,2.953c0.79,0.791,1.812,1.208,2.955,1.208
c1.132,0,2.157-0.41,2.966-1.188c0.823-0.791,1.259-1.82,1.259-2.974V9.174C223.479,7.992,223.061,6.948,222.269,6.158z"/>
<path d="M256.364,43.479c-0.623,0-1.204,0.132-1.729,0.393c-1.141,0.571-2.321,1.014-3.513,1.315
c-1.176,0.299-2.584,0.45-4.19,0.45c-2.881,0-5.122-0.691-6.661-2.055c-1.225-1.085-2.042-2.498-2.477-4.293h19.249
c1.233,0,2.293-0.425,3.065-1.227c0.758-0.788,1.158-1.803,1.158-2.936c0-2.991-0.627-5.8-1.867-8.346
c-1.259-2.585-3.128-4.682-5.554-6.231c-2.437-1.557-5.343-2.346-8.639-2.346c-3.517,0-6.54,0.849-8.984,2.524
c-2.429,1.663-4.251,3.875-5.42,6.571c-1.14,2.629-1.717,5.532-1.717,8.628c0,5.533,1.555,9.915,4.622,13.026
c3.071,3.119,7.354,4.698,12.732,4.698c2.584,0,4.745-0.246,6.428-0.732c1.658-0.48,3.355-1.207,5.053-2.165
c1.898-1.096,2.298-2.499,2.298-3.483c0-1.085-0.411-2.034-1.189-2.749C258.285,43.84,257.364,43.479,256.364,43.479z
M237.71,31.951c0.215-1.119,0.593-2.09,1.131-2.897c0.768-1.151,1.692-1.97,2.825-2.503c2.328-1.092,4.754-1.093,7.08-0.001
c1.14,0.536,2.077,1.359,2.865,2.517c0.549,0.804,0.934,1.771,1.151,2.885H237.71z"/>
</g>
<g>
<g>
<path d="M17.291,35.059c7.947-2.062,16.118-4.836,18.274-5.58c0.355-0.123,0.552-0.191,0.552-0.191s-0.021-0.008-0.033-0.013
l1.615-0.636l0.022,0.009l30.894-12.3c-0.765-3.868-2.33-7.001-4.701-9.4c-2.37-2.396-5.272-4.155-8.706-5.272
C51.775,0.56,48.069,0,44.093,0c-5.671,0-10.56,1.09-14.675,3.27c-4.114,2.179-7.274,5.342-9.482,9.482
c-2.206,4.141-3.308,9.149-3.31,15.031c-7.306,4.08-19.362,5.242-16.067,8.79C2.22,38.362,9.649,37.04,17.291,35.059
L17.291,35.059z M56.193,9.462c4.519-2.259,6.919,4.942,6.919,4.942l-6.919,2.683C56.193,17.087,53.461,10.829,56.193,9.462z"/>
</g>
<path d="M65.646,30.315c-3.754-2.087-8.485-0.733-10.57,3.02c-2.069,3.723-5.992,6.033-10.243,6.033
c-5.117,0-9.466-3.307-11.052-7.89c-5.033,1.66-10.648,3.271-14.916,4.442c3.506,11.002,13.819,18.994,25.968,18.994
c9.893,0,19.025-5.378,23.832-14.03C70.751,37.131,69.398,32.399,65.646,30.315z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
doc/_static/consent.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
doc/_static/login.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
doc/_static/logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

BIN
doc/_static/profile.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

7
doc/changelog.rst Normal file
View file

@ -0,0 +1,7 @@
Roadmap and changelog
#####################
canaille 0 versions
-------------------
.. include:: ../CHANGES.rst

84
doc/conf.py Normal file
View file

@ -0,0 +1,84 @@
#!/usr/bin/env python3
import os
import sys
import pkg_resources
sys.path.insert(0, os.path.abspath("../.."))
sys.path.insert(0, os.path.abspath("../../canaille"))
import canaille
# -- General configuration ------------------------------------------------
rqmt = pkg_resources.require("canaille")[0]
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.doctest",
"sphinx.ext.graphviz",
"sphinx.ext.intersphinx",
"sphinx.ext.todo",
"sphinx.ext.viewcode",
"sphinx_issues",
]
templates_path = ["_templates"]
source_suffix = [".rst"]
master_doc = "index"
project = "canaille"
copyright = "2020, Yaal"
author = "Yaal"
version = "%s.%s" % tuple(map(int, rqmt.version.split(".")[:2]))
release = rqmt.version
language = None
exclude_patterns = []
pygments_style = "sphinx"
todo_include_todos = False
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
}
issues_uri = "https://gitlab.com/yaal/canaille/-/issues/{issue}"
issues_pr_uri = "https://gitlab.com/yaal/canaille/-/merge_requests/{pr}"
issues_commit_uri = "https://gitlab.com/yaal/canaille/-/commit/{commit}"
# -- Options for HTML output ----------------------------------------------
html_theme = "sphinx_rtd_theme"
html_static_path = []
# -- Options for HTMLHelp output ------------------------------------------
htmlhelp_basename = "canailledoc"
html_logo = "_static/logo.png"
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {}
latex_documents = [
(master_doc, "canaille.tex", "canaille Documentation", "Yaal", "manual")
]
# -- Options for manual page output ---------------------------------------
man_pages = [(master_doc, "canaille", "canaille Documentation", [author], 1)]
# -- Options for Texinfo output -------------------------------------------
texinfo_documents = [
(
master_doc,
"canaille",
"canaille Documentation",
author,
"canaille",
"One line description of project.",
"Miscellaneous",
)
]

1
doc/contributing.rst Normal file
View file

@ -0,0 +1 @@
.. include:: ../CONTRIBUTING.rst

46
doc/index.rst Normal file
View file

@ -0,0 +1,46 @@
Canaille
========
**Canaille** is a French word meaning *rascal*. It is roughly pronounced **Can I?**,
as in *Can I access your data?* Canaille is a simple OpenID Connect provider based upon a LDAP database.
It aims to be very light, simple to install and simple to maintain. Its main features are :
- Authentication against a LDAP directory;
- OAuth/OpenID Connect support;
- No outdated or exotic protocol support;
- No additional database required. Everything is stored in your LDAP server;
- The code is easy to read and easy to edit.
Screenshots
===========
.. image:: _static/login.png
:width: 225
:alt: Login
.. image:: _static/consent.png
:width: 225
:alt: Consent
.. image:: _static/profile.png
:width: 225
:alt: Profile
Table of contents
=================
.. toctree::
:maxdepth: 2
install
contributing
changelog
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

58
doc/install.rst Normal file
View file

@ -0,0 +1,58 @@
Installation
############
⚠ Canaille is under heavy development and may not fit a production environment yet. ⚠
First you need to install the schemas into your LDAP server. There are several ways to achieve this:
LDAP schemas
============
As of OpenLDAP 2.4, two configuration methods are available:
- The `deprecated <https://www.openldap.org/doc/admin24/slapdconf2.html>`_ one, based on a configuration file (generally `/etc/ldap/slapd.conf`);
- The new one, based on a configuration directory (generally `/etc/ldap/slapd.d`).
Depending on the configuration method you use with your OpenLDAP installation, you need to chose how to add the canaille schemas:
Old fashion: Copy the schemas in your filesystem
================================================
.. code-block:: console
test -d /etc/openldap/schema && sudo cp schema/* /etc/openldap/schema
test -d /etc/ldap/schema && sudo cp schema/* /etc/ldap/schema
sudo service slapd restart
New fashion: Use slapadd to add the schemas
===========================================
.. code-block:: console
sudo slapadd -n0 -l schema/*.ldif
sudo service slapd restart
Web interface
=============
Then you can deploy the code either by copying the git repository or installing the pip package:
.. code-block:: console
pip install canaille
Finally you have to run the website in a WSGI server:
.. code-block:: console
pip install gunicorn
gunicorn "canaille:create_app()"
Recurrent jobs
##############
You might want to clean up your database to avoid it growing too much. You can regularly delete
expired tokens and authorization codes with:
.. code-block:: console
env CONFIG=/path/to/config.toml FASK_APP=canaille flask clean

View file

@ -45,6 +45,7 @@ envlist =
py37
py38
py39
doc
coverage
skipsdist=True
@ -58,6 +59,15 @@ deps =
pdbpp
pytest
[testenv:doc]
deps =
--editable .
sphinx
sphinx-rtd-theme
sphinx-issues
commands =
sphinx-build doc build/sphinx/html
[testenv:coverage]
skip_install = true
deps =