We are looking for a Senior Full-Stack Developer for our client, who has developed an AI-powered platform for food product development, PDE (Product Design Engine). The platform is currently configured as a single-tenant application, and our client is looking to implement multi-tenant functionality, enabling multiple companies/clients to use the same platform with strict isolation of each organization’s private data.
Current technology stack
- Backend: Django / Python
- Frontend: Next.js / TypeScript
- Database: PostgreSQL
- API: GraphQL
- The platform also includes AI/agent services that access ingredient, recipe, nutrition and document data.
Required work
1. Organisation & user model
- Introduce an Organisation model.
- Link users to organisations through memberships.
- Support owner, admin and member roles.
- Establish an active organisation context for authenticated requests.
- Preserve compatibility with the existing single-tenant deployment through a default organisation.
2. Customer data isolation
Tenant-scope customer-owned data, including:
- Projects
- Designs
- Private ingredients
- Ingredient specification documents
- Recipes
- Generated/private assets
Existing data should be migrated to the default organisation.
Each organisation must only be able to access its own private data.
Shared platform reference data, such as regulations, additive classifications and baseline regulatory requirements, should remain accessible to all organisations.
3. GraphQL access & permissions
- Scope relevant queries to the active organisation.
- Restrict/remove global customer-data queries.
- Implement object-level permission checks for relevant mutations.
- Prevent users from accessing, modifying or deleting another organisation's data.
- Restrict collaborators to users within the same organisation.
4. Ingredient visibility The ingredient database should distinguish between:
- global platform ingredients, accessible to all customers; and
- private customer ingredients, accessible only to the relevant organisation.
Supplier information, costs, specifications and uploaded documents belonging to one customer must never be visible to another customer.
5. AI/agent tenant awareness
All relevant AI/agent services and tools must operate within the active organisation context.
Ingredient, recipe, nutrition and document lookups should only access:
- global platform data; and
- private data belonging to the current organisation.
Agent traces/logs should be associated with the relevant organisation, and anonymous/shared test-user access should not be available in production.
6. File security
- Store/organise private files by organisation.
- Implement authorisation checks before private documents or generated assets are served.
- This includes ingredient documents, private uploads, generated images and thumbnails.
7. Tenant-isolation testing
Implement tests demonstrating that
- Organisation A cannot read, search or modify Organisation B's data.
- Organisation A cannot access Organisation B's ingredients or documents.
- Users from another organisation cannot be added as collaborators.
- AI/agent lookups cannot retrieve another organisation's private data.
- Shared platform reference/regulatory data remains accessible.
- Existing single-tenant functionality continues to work following migration.
Expected deliverables
- Production-ready implementation of the above functionality.
- Migration/backfill of existing data into the default organisation.
- Automated tenant-isolation test suite.
- Architecture documentation describing the tenancy model and key security principles.
- Migration/deployment runbook.
- Brief administrative documentation.
- Handover of the completed implementation.
Experience required
- Experience with Django/Python, Next.js/TypeScript, PostgreSQL, GraphQL and multi-tenant SaaS architecture.
- Experience with AI/LLM applications where data access must be limited to a specific client/tenant.