Skip to main content

conference-cleanup

Cleanup service for the external and internal database to correct data dift.

Django-based synchronization service that keeps the external gateway database (gateway-backend) in sync with the internal conference database (conference-backend). It is designed to resolve data drift caused by service outages or other failures.

The service connects to the internal database directly via its native protocol (e.g., PostgreSQL) and communicates with the gateway through its HTTP CRUD API. The internal database is treated as read-only. No writes, migrations, or other modifications are performed against it.

During synchronization, the service compares internal conferences with those stored on the gateway. The following actions might be queued and are executed in batches once all comparisons are complete:

  • Delete from the gateway if the conference no longer exists internally, is marked as deleted, or has both guest and phone access deactivated.
  • Update in the gateway if the conference exists on both sides but data has diverged.
  • Create in the gateway if the conference exists internally with access enabled but is missing from the gateway.

The service has no HTTP endpoints and operates purely as a background process. It supports two operation modes:

  • One-shot (CONFERENCE_CLEANUP_RUN_CLEANUP_ON_STARTUP=true): Runs a single sync immediately on service startup.
  • Scheduled (CONFERENCE_CLEANUP_SCHEDULE=HH:MM(:SS)): Runs a sync daily at the configured time.

Set CONFERENCE_CLEANUP_DRY_RUN=true to preview all actions without executing them.

Software-Details

Created at

05/29/26

Last updated

05/29/26

Status

beta

Platform
web
Software-Version

0.2.0

License

BSD-3-Clause

Last updated