FSFE Community Database Backend
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Reinhard Müller be241dbbbd Fix issue with username change 2 days ago
bin Add a bunch of HBCI commands to initialize for PSD2 4 days ago
config Fix bank data format after bank software change 1 month ago
doc Get rid of .env file in standard configuration. 2 months ago
fsfe_cd_back Fix issue with username change 2 days ago
tests Add return values for registration routine 1 month ago
.dockerignore Get rid of .env file in standard configuration. 2 months ago
.drone.yml Get rid of .env file in standard configuration. 2 months ago
.gitignore Get rid of .env file in standard configuration. 2 months ago
.isort.cfg Clean up isort config 5 months ago
Dockerfile Update to aqbanking version prepared for PSD2 4 days ago
Dockerfile-quality Go back to system wide install for quality checks 4 months ago
LICENSE Update copyright headers 6 months ago
MANIFEST.in Be more explicit about which package to install 2 months ago
Makefile Fix development server issues 1 month ago
Pipfile Update dependencies 3 months ago
Pipfile.lock Update dependencies 3 months ago
README.md Move API and commandline tools documentation to separate files 4 months ago
docker-compose-quality.yml Create a dedicated container for the quality check 4 months ago
docker-compose.yml Add some more files to .dockerignore 5 months ago
setup.py Fix typo 2 months ago

README.md

FSFE Community Database Backend

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

Introduction

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.

Overview

This repository contains the FSFE Community Database Backend. It essentially consists of three parts:

  1. 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 fsfe_cd_back/data.

  2. 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 fsfe_cd_back/server.

  3. 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 bin directory.

Further reading

The directory doc contains more detailled documentation.