Skip to main content

A Django ObjectSyncer between a server and multiples clients

Project description

Django Object Syncer

Django application allowing a server instance to track modifications of instance of certain models and push them to remote clients.

In summary, how does it work ?

Two abstract classes exist: VersioningBaseModel and TrackingAndVersioningBaseModel.

The versioning base model have the following fields :

  • a UUID (version 4), unique for this model
  • a version, starting at 1
  • a creation datetime
  • a last edition datetime
  • an inactive flag

The tracking and versioning base model have the following field added to the fields of VersioningBaseModel.

  • an active state by applications

It is then possible to create a monitored Model :

class VersioningFakeClass(TrackingAndVersioningBaseModel):
    """
    A code
    """
    code = models.CharField(max_length=20)

    """
    A name 
    """
    name = models.CharField(max_length=250)

    """
    Tracker
    """
    tracker = FieldTracker()

An Application is a remote application that must be updated with each change. ach application contains a remote Rest API endpoint and an Authorization Key.

For each change, a JobChange is created per application. A cron job will then consume JobChanges by making a POST request on the endpoint API of each application.

At the customer level, they dynamically process the fields to keep only those present in their model (each customer does not need all the fields).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-objectsyncer-1.0.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

django_objectsyncer-1.0.1-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file django-objectsyncer-1.0.1.tar.gz.

File metadata

  • Download URL: django-objectsyncer-1.0.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.7

File hashes

Hashes for django-objectsyncer-1.0.1.tar.gz
Algorithm Hash digest
SHA256 46b220b986321546f276b6fe6fec56127065dc87c7b48f9660984608f6c359c6
MD5 ca11a13ab42e643d1764f5c7e64a6a9f
BLAKE2b-256 e85108f7d01f6ba5508582565e89ed511b21a9aa99de185f81c44e9949f64abd

See more details on using hashes here.

File details

Details for the file django_objectsyncer-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: django_objectsyncer-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.7

File hashes

Hashes for django_objectsyncer-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e655647ebea2e256510aa4c4798e3bac93cd2f60525a40381e7a204bbe3aec7f
MD5 aec7410db4cbcda4fe0822a73faaee1a
BLAKE2b-256 673b161ba787b8d79c1e62f478d1938e08b6bccadecdae08563d0320ca682df9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page