How openslides/openslides-backend works
OpenSlides Backend accepts requests to mutate meeting and organization data, validates and applies actions, and serves permission-restricted presenter results without autoupdate. The main paths are HTTP request → action or presenter view → handler/presenter → datastore. Actions span meeting setup, motions, speakers, polls, users, and projection; presenters query data for responses. The tree and README establish these capabilities, while sampled excerpts show request handling, relation updates, database access, and service wiring. Some domain-action and presenter internals were not sampled, so their detailed connections are omitted.
Main entry points: actions Action modules · extended_database.py Datastore adapter · action_handler.py Action handler · application.py WSGI application
Components 24
HTTP API
- WSGI application
openslides_backend/http/application.py - Action view
openslides_backend/http/views/action_view.py - Presenter view
openslides_backend/http/views/presenter_view.py - Presenter modules
openslides_backend/presenter
Action processing
- Action handler
openslides_backend/action/action_handler.py - Permission checks
openslides_backend/permissions - Relation manager
openslides_backend/action/relations/relation_manager.py
Meeting domains
- Action modules
openslides_backend/action/actions - Meetings and agenda
openslides_backend/action/actions/agenda_item - Motions and workflows
openslides_backend/action/actions/motion - Speakers and lists
openslides_backend/action/actions/speaker - Polls and votes
openslides_backend/action/actions/poll - Users and groups
openslides_backend/action/actions/user - Projector control
openslides_backend/action/actions/projector - Media files
openslides_backend/action/actions/mediafile - Chat
openslides_backend/action/actions/chat_message
Data and services
- Model definitions
openslides_backend/models/models.py - Datastore adapter
openslides_backend/services/database/extended_database.py - SQL query builder
openslides_backend/services/database/query_helper.py
Other components
- API client
- PostgreSQL
- Auth service
- Media service
- Vote service
Connections 22
- API client → WSGI application: sends request
- WSGI application → Action view: dispatches action
- WSGI application → Presenter view: dispatches query
- Action view → Action handler: handles actions
- Presenter view → Presenter modules: fetches results
- Action handler → Action modules: invokes actions
- Action handler → Permission checks: checks access
- Action handler → Datastore adapter: applies writes
- Relation manager → Datastore adapter: applies relations
- Presenter modules → Datastore adapter: queries data
- Datastore adapter → SQL query builder: builds queries
- SQL query builder → PostgreSQL: queries
- Datastore adapter → PostgreSQL: reads and writes
- Action modules → Meetings and agenda: includes
- Action modules → Motions and workflows: includes
- Action modules → Speakers and lists: includes
- Action modules → Polls and votes: includes
- Action modules → Users and groups: includes
- Action modules → Projector control: includes
- Action modules → Media files: includes
- Action modules → Chat: includes
- Model definitions → Datastore adapter: defines stored models