Platform
This page combines the public-safe architecture guidance currently used across the Snabplus repository.
Production-first data platform
Default runtime model
Snabzhenets+runs as one shared production platform.- One client portal equals one
tenantworkspace inside a shared PostgreSQL database. - Tenant isolation is enforced through
tenantId, tenant-scoped queries, and service-level access checks. - Separate databases per portal are not the default deployment model.
What is provisioned for a new portal
When a new portal is created, the platform:
- creates a
tenant - creates the first admin user
- assigns base system roles
- optionally seeds default units
- returns portal and admin metadata
Production safety expectations
- Business entities remain tenant-scoped by
tenantId. - Cross-tenant links between users, suppliers, invoices, procurements, files, and other records must be rejected.
- Portal APIs stay tenant-scoped by default, including for
super_admin, unless a route is explicitly platform-level. - Production health should cover more than connectivity:
- database status
- latest applied migration
- database size
- backup freshness
Backend guardrails
tenantIdis server-owned and must never be accepted from DTO payloads.- Tenant-bound IDs such as
supplierId,procurementId,requestId,catalogItemId,unitId, andprimaryFileIdmust be validated inside the active tenant before write operations. - New backend work must be designed for the shared server runtime, not for a localhost-only workflow.
Platform API
Internal portal provisioning API:
GET /api/v1/platform/portalsPOST /api/v1/platform/portals
Access is restricted to platform-level administrators.
Public root SEO guidelines
Main objective
The public root https://snabplus.com/ is the main SEO entrypoint of the service. It should describe the product clearly for procurement and supply teams, stay indexable, and present well in social previews.
Main page SEO rules
- Use a clear commercial title focused on the product and category.
- Keep the main description readable for business users, not developers.
- Mention the core value proposition directly:
- procurement requests
- purchasing workflow
- suppliers
- invoices
- nomenclature
- status control
- Keep the canonical URL fixed to
https://snabplus.com/. - Maintain valid Open Graph and Twitter metadata.
- Expose structured data describing Snabplus as a software service.
Indexing rules
robots.txtmust allow indexing of/.sitemap.xmlmust include the public main page./app,/register,/login, and/secretinfo-serv-data-healthmust not be treated as public landing pages.- Protected tenant pages are runtime application pages, not SEO landing pages.