Data Architecture Overview
ORISO Platform uses multiple database types, all managed centrally through the ORISO-Database repository. Liquibase is DISABLED in all services - schemas are managed separately.Database Types
MariaDB (Primary Database)
- Purpose: Main relational database for backend services
- Total Databases: 7
- Service Name:
oriso-platform-mariadb.caritas.svc.cluster.local:3306 - Connection Type: ClusterIP (internal only)
- Databases:
tenantservice- Tenant managementuserservice- User managementconsultingtypeservice- Consulting typesagencyservice- Agency management- Additional service databases as needed
MongoDB
- Purpose: NoSQL storage for consulting types
- Database:
consulting_types - Service Name:
oriso-platform-mongodb.caritas.svc.cluster.local:27017 - Connection Type: ClusterIP (internal only)
- Used By: ConsultingTypeService
PostgreSQL
- Purpose: Matrix Synapse database only
- Database:
synapse - Service Name:
oriso-platform-postgresql.caritas.svc.cluster.local:5432 - Connection Type: ClusterIP (internal only)
- Used By: Matrix Synapse (not backend services)
Redis
- Purpose: Caching and session storage
- Service Name:
oriso-platform-redis.caritas.svc.cluster.local:6379 - Connection Type: ClusterIP (internal only)
- Features:
- Session storage
- Cache for frequently accessed data
- Rate limiting
- Temporary data storage
RabbitMQ
- Purpose: Message queue for asynchronous processing
- Service Name:
oriso-platform-rabbitmq.caritas.svc.cluster.local:5672 - Management UI: Port 15672 (ClusterIP)
- Connection Type: ClusterIP (internal only)
- Features:
- Asynchronous task processing
- Event publishing
- Work queues
Schema Management Philosophy
Centralized Schema Management
All database schemas are managed in the ORISO-Database repository, not by individual services.Liquibase Status
Liquibase is DISABLED in all backend services. This means:- Services do NOT auto-migrate on startup
- Schemas must be managed manually
- Schema changes are version-controlled in ORISO-Database
- Migration scripts are run separately
Schema Location
Database Setup
Master Setup Script
Location:caritas-workspace/ORISO-Database/scripts/setup/00-master-setup.sh
What it does:
- Creates all MariaDB databases
- Imports all schema files
- Creates system users
- Sets up MongoDB collections
- Initializes PostgreSQL (if needed)
Individual Database Setup
Each database has its own setup script inORISO-Database/mariadb/<service>/setup.sh
Connection Strings
MariaDB Connection
MongoDB Connection
Redis Connection
RabbitMQ Connection
System Users
MariaDB System Users
Created viasystem-users-job.yaml:
caritas_admin- Admin user for Caritas operationsoriso_call_admin- Admin for call managementgroup-chat-system- System user for group chats
Backup and Restore
Backup Scripts
Location:caritas-workspace/ORISO-Database/scripts/backup/
Available Scripts:
backup-all.sh- Backup all databasesbackup-mariadb.sh- Backup MariaDB onlybackup-mongodb.sh- Backup MongoDB only
Restore Scripts
Location:caritas-workspace/ORISO-Database/scripts/restore/
Available Scripts:
restore-mariadb.sh- Restore MariaDB from backuprestore-mongodb.sh- Restore MongoDB from backup
Automated Backups
Matrix PostgreSQL has automated backups via CronJob:Data Persistence
Persistent Volumes
All databases use Kubernetes PersistentVolumeClaims (PVCs):- MariaDB:
mariadb-data(20Gi) - MongoDB:
mongodb-data(10Gi) - PostgreSQL:
matrix-postgres-data(10Gi) - Redis:
redis-data(5Gi) - RabbitMQ:
rabbitmq-data(5Gi)
Volume Retention
PVCs are retained on Helm uninstall (data is preserved):Security
Internal-Only Access
All databases are ClusterIP services (not exposed externally):- No direct external access
- Accessible only from within Kubernetes cluster
- Services connect via Kubernetes DNS