We're working on two different GIS apps and we're a bit torn around how to provide a level of tenant data isolation on our GIS systems.
System A would need to have strong tenant data isolation where 1 single app is used by multiple tenants to access their own separate data. We'd be looking at 50-500 range of clients to support and therefore up to 500 individual databases to connect to.
Our plan so far is to find a way to work with isolated shards or altogether different databases. Do all the capabilities of a standard PostgreSQL apply in this scenario? if anything works with PostgreSQL are we safe to assume it will work with PostGIS?
System B does not need complete tenant data isolation but it does need query-level isolation whilst keeping it possible for a 'tenant' manager to query all data.
This is aimed for a single company which has 50+ projects with separate users that need to query only project-relevant data, whilst at the top level being able to also query the data as a whole. We'd like to optimize for project-level query performance in this scenario.
So there's a project-level isolation when running queries for business/performance and to some degree security purposes.
Has anyone encountered any of these use cases with PostGIS/GIS data? We've yet to make a choice for database but PostGIS seems the obvious choice so far.