# SOGOMS

**Service Oriented GO MicroServices** - Plateforme SaaS modulaire multi-tenant.

## Vision

SOGOMS est un framework backend léger en Go qui transforme un simple fichier de schéma YAML en API REST complète. Conçu pour héberger plusieurs applications SaaS sur une même infrastructure avec isolation totale des données.

```
schema.yaml  →  SOGOMS  →  API REST + Auth + CRUD + Push
```

## Caractéristiques

- **Léger** : binaires Go compilés (~10MB), pas de dépendances runtime
- **Modulaire** : 1 fonctionnalité = 1 microservice
- **Configurable** : SQL et routing en YAML, sans recompilation
- **Sécurisé** : JWT, isolation par user_id, bcrypt
- **Auto-supervisé** : health checks, restart automatique
- **Temps réel** : push MQTT vers les applications (roadmap)
- **Schema-driven** : génération d'API et queries depuis la structure DB

## Services actuels

| Service | Rôle | Statut |
|---------|------|--------|
| `sogoctl` | Superviseur, health checks | Stable |
| `sogoway` | Gateway HTTP, auth JWT, CRUD | Stable |
| `sogoms-db` | Accès MariaDB | Stable |
| `sogoms-logs` | Logging centralisé | Stable |
| `sogoms-smtp` | Envoi emails, templates | Stable |
| `sogoms-cron` | Tâches planifiées | Stable |
| `sogoms-admin` | Interface web administration, scan DB | Stable |

## Roadmap

| Phase | Service | Description |
|-------|---------|-------------|
| 11 | sogoms-crypt | Chiffrement données sensibles |
| 12 | sogoms-imap/mailproc | Lecture et traitement emails |
| 14 | sogoms-push | Push temps réel (MQTT) |
| 15 | sogoms-schema | API auto-générée depuis schema |

## Applications

| Application | Description | URL |
|-------------|-------------|-----|
| **Prokov** | Gestion de projets et tâches | prokov.unikoffice.com |

## Déploiement

```bash
./deploy.sh
```

## Documentation

- [Documentation technique](DOCTECH.md) - Architecture, API, configuration
- [Roadmap](TODO.md) - Suivi des tâches et évolutions

## Prérequis

- Go 1.22+
- MariaDB/MySQL
- Container Linux (Alpine recommandé)

## Licence

Propriétaire - Tous droits réservés
