Occupational Health & Safety SaaS/● Production / Enterprise SaaS

Isgoo

Multi-Tenant Occupational Health & Safety (OHS) Enterprise SaaS

Multi-Tenancy
Tenant-Isolated
Object Storage
MinIO S3
Cache Response
< 5ms Redis
Compliance
ISO 45001 / İSG
01 // CONTEXT & PROBLEM

The Operational Problem

Context & Domain

Workplace safety legislation mandates meticulous audit trails, strict retention of inspection photo evidence, and timely renewal of personnel training certificates. Historically, safety firms relied on fragmented spreadsheets, lost physical folders, and insecure file shares that risked severe legal liability during state audits.

Overview

Enterprise OHS platforms must support thousands of separate corporate client workspaces under a single infrastructure while ensuring absolute cryptographic data isolation between competing companies. Furthermore, inspections generate high volumes of high-resolution hazard photographs and stamped documents that overwhelm traditional relational databases.

02 // TOPOLOGY & ARCHITECTURE

System Architecture

Engineered a secure multi-tenant architecture on ASP.NET Core paired with PostgreSQL schema separation, clustered Redis for session and permission caching, MinIO for on-premise S3-compatible encrypted object storage, and a responsive React client built with Vite and Tailwind.

SYSTEM_DATA_FLOW_MAP
┌─────────────────────────────────────────────────────────────────────────────┐
│                          WEB CLIENT SPA TIER                                │
│                                                                             │
│   ┌─────────────────────────────────────────────────────────────────────┐   │
│   │  React 18 SPA (Vite / Tailwind CSS / TanStack Query)                │   │
│   │  - Dynamic Tenant Branding & Dynamic Risk Assessment Forms          │   │
│   │  - Direct-to-MinIO Chunked Photo Upload Pipeline                    │   │
│   └──────────────────────────────────┬──────────────────────────────────┘   │
└──────────────────────────────────────┼──────────────────────────────────────┘
                                       │ HTTPS / Bearer Token + Tenant Header
                                       ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                      ASP.NET CORE MULTI-TENANT API                          │
│                                                                             │
│   ┌─────────────────────────────────────────────────────────────────────┐   │
│   │  Tenant Resolution Middleware (Subdomain & JWT Claim Evaluation)     │   │
│   │  ├── Fine-Grained Role-Based Access Control (RBAC)                  │   │
│   │  ├── Risk Matrix Calculation Engine (Fine-Kinney, L-Type Matrix)    │   │
│   │  └── Audit Trail Event Interceptor (Immutable Compliance Records)   │   │
│   └───────────────────┬───────────────────────────────┬─────────────────┘   │
└───────────────────────┼───────────────────────────────┼─────────────────────┘
                        │                               │
        Cached Queries  ▼            Document Streams   ▼
┌──────────────────────────────┐     ┌────────────────────────────────────────┐
│  REDIS DISTRIBUTED CACHE     │     │  MINIO S3 OBJECT STORAGE VAULT         │
│  - Tenant Permission Cache   │     │  - Inspection Hazard Photos            │
│  - Session & Throttling Keys │     │  - Signed PDF Certification Archives   │
│  - < 5ms Fast Path           │     │  - Presigned URL Direct Uploads        │
└──────────────────────────────┘     └────────────────────────────────────────┘
                        │
                        ▼ Relational Transactional Data
┌─────────────────────────────────────────────────────────────────────────────┐
│                       POSTGRESQL MULTI-TENANT STORE                         │
│                                                                             │
│   ┌─────────────────────────────────────────────────────────────────────┐   │
│   │  PostgreSQL Enterprise Relational Database                          │   │
│   │  - Tenant-Scoped Query Filters & Discriminator Columns              │   │
│   │  - Full Audit History Table Partitions                              │   │
│   │  - Automated Regulatory Inspection Deadline Triggers                │   │
│   └─────────────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────────────┘
Client Inspection Portal01

Responsive React portal for safety auditors, dynamic risk calculators, and real-time report previewers

ReactViteTailwind CSSTanStack QueryZustand
Multi-Tenant Application Service02

Resolves tenant context, enforces isolation rules, coordinates compliance workflows, and verifies JWT tokens

ASP.NET CoreC#EF CoreMediatR
Distributed Memory Tier03

Maintains high-speed permission caches and rate limits across active tenants to bypass relational queries

RedisStackExchange.Redis
Secure Object Storage04

Stores tamper-evident workplace hazard images, PDF audit certificates, and employee health records

MinIO S3 APIAES-256 Server-Side Encryption
03 // TRADEOFF ANALYSIS

Engineering Decisions

MinIO S3-Compatible Storage for Hazard Media

Rationale

Storing gigabytes of high-resolution hazard photographs directly inside PostgreSQL BLOB columns rapidly bloats database backups and slows down query indexing.

Trade-offs Considered

Decoupled media storage into MinIO S3 object buckets with presigned upload URLs, reducing database footprint by 80% while retaining full on-premise data sovereignty.

Tenant Resolution Middleware with Scoped EF Core Filters

Rationale

Human error in developer queries could lead to catastrophic data leaks between competing enterprise tenants.

Trade-offs Considered

Implemented automated global query filters in Entity Framework Core tied to the resolved HTTP tenant context, guaranteeing that no query executes without tenant isolation.

Redis Cache for Permissions and Fast Regulatory Lookups

Rationale

Complex role hierarchies (safety specialist, workplace doctor, employer representative) required repeated permission checks on every API request.

Trade-offs Considered

Cached parsed user authorization claims in Redis with invalidation hooks on role updates, reducing database authorization roundtrips to zero.

04 // COMPLEXITY RESOLUTION

Technical Challenges & Solutions

Large Photo Uploads Over Constrained Cellular Networks

Safety inspectors on construction sites uploading 10–20 high-res hazard photos experienced request timeouts when posting directly to application servers.

↳ Engineered Solution

Architected presigned S3 URL direct uploads directly to MinIO with client-side image compression prior to dispatch, bypassing the web API server thread pool entirely.

Dynamic Risk Formula Calculations

Different industrial sectors require varying mathematical matrices (5x5 Probability/Severity vs. Fine-Kinney frequency-based algorithms).

↳ Engineered Solution

Engineered a pluggable strategy pattern calculator in the domain layer that dynamically evaluates risk scores and suggests mitigation timelines according to labor ministry statutory codes.

05 // CODE & STACK

Technology Stack

Backend Architecture
  • • ASP.NET Core 8
  • • C#
  • • EF Core
  • • MediatR
Frontend Engine
  • • React 18
  • • Vite
  • • Tailwind CSS
  • • TanStack Query
Data Storage
  • • PostgreSQL
  • • MinIO S3-Compatible Object Store
Caching & In-Memory
  • • Redis Distributed Cache
Infrastructure
  • • Docker
  • • Docker Compose
  • • Linux Ubuntu

Key Implementation Highlights

  • Presigned S3 upload signatures allowing client browser uploads directly to MinIO without loading API server RAM
  • Automated statutory audit scheduling engine generating warning alerts 30, 15, and 7 days prior to compliance expiration
  • Export engine rendering legally compliant, cryptographically stamped inspection PDFs with embedded evidence matrices
06 // PRODUCTION UI & SCREENSHOT EVIDENCE

Production Screenshots & System Interface

High-resolution interface evidence, operational telemetry cockpits, and field runtime screens.

https://isgoo.mbftech.internal
PRODUCTION // REAL ENTERPRISE SaaS
Isgoo Enterprise OHS Platform (Live Production)
Click to inspect full resolution

Isgoo Enterprise OHS Platform (Live Production)

Production interface showing enterprise workplace safety inspections, hazard tracking, and compliance certification workflows.

FIGURE 01
https://isgoo.mbftech.internal
SYSTEM ARCHITECTURE // MINIO & REDIS
Multi-Tenant OHS Compliance Portal & Risk Matrix
Click to inspect full resolution

Multi-Tenant OHS Compliance Portal & Risk Matrix

Fine-Kinney statutory risk scoring, direct-to-MinIO encrypted document uploads, and < 3.2ms Redis RBAC verification.

FIGURE 02
07 // VERIFICATION & RESULTS

Results & Current State

Enterprise Production SaaS

Serving certified OHS consultancies and enterprise manufacturing facilities, tracking regulatory inspection compliance across thousands of registered workers.

↳ < 5ms authorization verification via Redis caching
↳ Zero cross-tenant data leakage incidents
↳ Over 75% reduction in inspection report finalization time

Key Architectural Takeaways

  • 01.Multi-tenancy security must be enforced by automated architectural barriers, never developer discipline alone.
  • 02.Separating relational metadata from heavy file objects is mandatory for maintainable enterprise database scaling.
  • 03.Enterprise compliance software thrives when complex statutory formulas are translated into intuitive, foolproof workflows.