Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ti-infinite/GSMApplication/llms.txt

Use this file to discover all available pages before exploring further.

GSM Application is a production-ready, multi-tenant platform designed for agricultural operations — managing herb products, employee assignments, supplier relationships, and harvest transactions. It is built on a database-per-tenant architecture where each company (tenant) has its own isolated SQL Server database, resolved dynamically at runtime through a central tenant registry.

Local Setup

Get the full stack running locally with Docker Compose in minutes

Architecture

Understand the gateway, microservices, and tenant isolation model

API Reference

Explore all REST endpoints across Auth, Application, and Operations services

Multi-Tenancy

Learn how tenant resolution, per-tenant databases, and theming work

Platform Overview

GSM Application consists of four independently deployable services that work together:

GSM Gateway

YARP-based reverse proxy that validates JWT tokens and injects the tenant identity header into every upstream request

GSM Auth

Authentication microservice handling login, logout, and tenant resolution with per-tenant database lookup

GSM Application

Menu, multimedia resources, user management, and configurable API integration rules

GSM Operations

Master products, employees, suppliers, categories, SKU definitions, and transaction management

Get Running in 3 Steps

1

Clone and configure

Copy .env.example to .env and fill in your SQL Server connection string and JWT secret.
cp .env.example .env
# Edit .env with your DB_MASTER_URL and JWT_SECRET
2

Provision the database

Create the TenantRegistryDb database and at least one tenant record. SQL scripts are included in the repository under each service’s readme/ folder.
3

Start all services

Docker Compose builds and starts all five containers — frontend, gateway, and three microservices.
docker compose up --build
The frontend is available at http://localhost:3000.
Each tenant must have its own database pre-created and registered in TenantRegistryDb.Tenants before users can log in. See Database Setup for details.

Build docs developers (and LLMs) love