LiquidFeedback Core (Backend)

This page is dedicated to the backend of LiquidFeedback (“the core”). You may also want to visit the main page of LiquidFeedback.

The core consists of a database scheme for the PostgreSQL database, including the algorithms for delegations, feedback and the voting procedure implemented as SQL views and database procedures written in PL/pgSQL. As it is licensed under the liberal MIT/X11-License you can include it in any software project you like, as long as there is PostgreSQL support for your programming language available.


  • PostgreSQL
  • pgLatLon (mandatory for versions from 4.0.0 until 4.2.1 inclusive; optional for version 4.2.2 or higher)


Older releases are found here.



  • 2021-02-05: Version 4.2.2
    • Geospatial indices not installed by default to reduce dependencies (indexing via pgLatLon is now optional)
  • 2020-12-05: Version 4.2.1
    • Support for own voting weight other than 1
    • Issue based privileges to override unit based privileges
    • Fixed wrong version number in update script to previous version
    • Added JSONB column attr to table unit for extended attributes of any kind
    • Added missing referential integrity constraint on posting table
    • Removed dependencies on pgConflux and btree_gist extensions (introduced in version 4.2.0, which can be skipped during update)
  • 2020-02-11: Version 4.2.0
    • New features
      • Added posting table and follower concept (using pgConflux)
      • Attachments for drafts (e.g. images)
      • Revised full text search to allow locale configuration
    • Removed snapshot_retention configuration (always delete unused snapshots immediately)
    • Fixed wrong constraint initiative_ids_not_equal on battle table to ensure valid entries in table
    • Bugfixes
      • Bug in check_issue function fixed, which could lead to non-accepted issues staying open after admission phase has ended
        table (due to handling of NULLs in CHECK constraints)
      • Added missing index on member_useterms table
    • Code cleanup
      • Renamed indices on issue table to match naming convention
      • Removed some indices
    • Improved README on dealing with problems during updating procedure
  • 2018-11-18: Version 4.1.0
    • Support for role accounts
    • Changes in table system_application: split-up discovery_baseurl into base_url and manifest_url
    • Added unsubscribe_secret column to member table to hold secrets for List-Unsubscribe mail headers
    • Several bugfixes
      • Added missing qualifier in expired_token view to avoid authorization codes to be deleted when used
      • Fixed wrong referential integrity index in table ignored_member
      • Fixed error in write_event_initiative_revoked_trigger which caused runtime exceptions
  • 2017-09-29: Version 4.0.0
    • Geospatial support
    • Dynamic admission quorum
    • Absolute issue and initiative quora
    • Support for integrated OAuth 2.0 server
    • Usage of PostgreSQL's JSONB datatype to store member profile information and settings
    • Revised snapshot system
    • Extended event logging
    • Revised system to store information about accepted terms of use
  • 2016-05-06: Version 3.2.2
    • New views member_eligible_to_be_notified and member_to_notify
    • Bug fixes
      • Set some notification settings to zero or DEFAULT in functions delete_member and delete_private_data (causes NULL constraint violation otherwise)
      • Exclude locked members from list of recipients in view scheduled_notification_to_send
      • Exclude non-activated members from list of recipients in views scheduled_notification_to_send and newsletter_to_send (relevant only in certain setups)
    • Allow to exclude featured initiatives from digests by setting notification_sample_size to zero
  • 2016-04-30: Version 3.2.1
    • Removed ON CONFLICT clause to allow PostgreSQL 9.3 compatibility (PostgreSQL 9.3 or 9.4 users can update directly from Core v3.1.0 to v3.2.1)
  • 2016-04-24: Version 3.2.0
    • Revised notification system, including newsletters
    • Improved error messages (using HINTs)
  • 2015-12-14: Version 3.1.0
    • Added min_admission_time field to policy and issue tables
    • Removed deprecated member_application table and discussion_url column of initiative table
    • Clarified operator precedence
    • Shortened constraint names to a maximum length of 63 characters