|Reinhard Müller 0fa77b22ba||6 days ago|
|bin||2 weeks ago|
|config||1 year ago|
|doc||6 days ago|
|fsfe_cd_back||6 days ago|
|tests||1 week ago|
|.dockerignore||1 year ago|
|.drone.yml||10 months ago|
|.gitignore||1 year ago|
|.isort.cfg||1 year ago|
|Dockerfile||7 months ago|
|Dockerfile-quality||10 months ago|
|LICENSE||10 months ago|
|MANIFEST.in||1 year ago|
|Makefile||10 months ago|
|Pipfile||9 months ago|
|Pipfile.lock||9 months ago|
|README.md||1 year ago|
|docker-compose-quality.yml||10 months ago|
|docker-compose.yml||1 month ago|
|setup.py||10 months ago|
The backend for the FSFE Community Database, including a Python interface to the data, a resource server for the frontend, and some command line tools used for manual data maintenance
The FSFE Community Database is a combined tool for donation management, administration of accounts for FSFE's services, and opt-in based distribution of information emails.
All relevant data for these purposes is stored in a PostgreSQL database on the one hand and FSFE's LDAP server on the other hand. Access to that data is encapsulated by the FSFE Community Database Backend (fsfe-cd-back), which provides both a set of commandline tools for manual administration tasks, and a protected RESTful(ish) network API to be used by other components.
The FSFE Community Database Authentication Server (fsfe-cd-auth) is an OpenID Connect Provider running on https://id.fsfe.org which authenticates a user against the LDAP server and then issues an access token which provides access to the authenticated user's (and only the authenticated user's) data though fsfe-cd-back's API.
Finally, the FSFE Community Database Frontend is a web application through which the people stored in the database can manage their own data at https://my.fsfe.org. It sends users to fsfe-cd-auth to log in and then uses the user-bound access token returned from there to access the user's data through fsfe-cd-back.
This repository contains the FSFE Community Database Backend. It essentially consists of three parts:
An Object-Relational Mapper (ORM) which turns database records into Python
objects and adds all the methods necessary to perform the tasks the FSFE
Community Database is built for. This layer is the core of the whole
structure. It is built with SQLAlchemy and resides in
A resource server with a REST-like API to allow data access for the other
components of fsfe-cd. All its access to the actual data goes through the
ORM. The resource server is implemented with Flask and can be found in
A set of command line tools for manual administration tasks, most of which
are only a thin wrapper around methods implemented in the ORM. They are
collected in the
doc contains more detailled documentation.