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 5d9ce8fd52 Fix missing commas 1 week ago
bin Fix missing commas 1 week ago
config Fix bank data format after bank software change 1 year ago
doc Add some improvements to campaign subscription code 6 months ago
fsfe_cd_back Add TLS to LDAP connection 4 months ago
tests Move guessing of payment period into person class 6 months ago
.dockerignore Get rid of .env file in standard configuration. 1 year ago
.drone.yml Update copyright year 7 months ago
.gitignore Get rid of .env file in standard configuration. 1 year ago
.isort.cfg Clean up isort config 1 year ago
Dockerfile Update download location for aqbanking sources 4 months ago
Dockerfile-quality Update copyright year 7 months ago
LICENSE Update copyright year 7 months ago
MANIFEST.in Be more explicit about which package to install 1 year ago
Makefile Update copyright year 7 months ago
Pipfile Update and clean up dependencies 6 months ago
Pipfile.lock Update and clean up dependencies 6 months ago
README.md Move API and commandline tools documentation to separate files 1 year ago
docker-compose-quality.yml Update copyright year 7 months ago
docker-compose.yml Add TLS to LDAP connection 4 months ago
setup.py Update copyright year 7 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.