Soft/Shared Tenant Architecture and third party apps

The majority (AFAIK) of multi-tenant projects go with soft/shared multi-tenancy architecture where a “tenant_id” would be added to the models.

The problem with this approach is third-party apps where the developer doesn’t have access to their models.

Except for a few Django packages where the models are implemented with swapping (auth.User, django-comments, django-oauth-toolkit, …), most of other third applications don’t have such configuration.

In many cases, it will render the third-party apps useless, some notable workarounds are:

  • Fork/vendor the upstream project and add the tenant-based changes.
  • Ask the developers to provide swapping/abstract solutions into their project.
  • ?

Each of the above has their own problems as well.

I wanted to ask, how else do you handle this problem?