Phase 13 : sogoms-cron
- Jobs planifiés avec schedule cron standard
- Types: query_email, http, service
- Actions: list, trigger, status
Phase 16 : Réorganisation config/apps/{app}/
- Tous les fichiers d'une app dans un seul dossier
- Migration prokov vers nouvelle structure
Phase 17 : sogoms-admin
- Interface web d'administration (Go templates + htmx)
- Auth sessions cookies signées HMAC-SHA256
- Rôles super_admin / app_admin avec permissions
Phase 19 : Création d'app via Admin UI
- Formulaire création app avec config DB/auth
- Bouton "Scanner la base" : introspection + schema.yaml
- Rechargement automatique sogoway via SIGHUP
Infrastructure :
- sogoctl : socket de contrôle /run/sogoctl.sock
- sogoway : reload config sur SIGHUP sans restart
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
144 lines
2.5 KiB
YAML
144 lines
2.5 KiB
YAML
# Routes API Prokov
|
|
# Gestion de projets et tâches
|
|
|
|
app: prokov
|
|
version: "1.0"
|
|
base_path: /api
|
|
|
|
# Identification par hostname
|
|
hosts:
|
|
- prokov.unikoffice.com
|
|
- prokov.sogoms.com
|
|
|
|
# Base de données
|
|
database:
|
|
host: 13.23.33.4
|
|
port: 3306
|
|
user: prokov_user
|
|
password_file: /secrets/prokov_db_pass
|
|
name: prokov
|
|
|
|
# Authentification
|
|
auth:
|
|
jwt_secret_file: /secrets/prokov_jwt_secret
|
|
jwt_expiry: 24h
|
|
|
|
# Logs
|
|
logs:
|
|
retention_days: 30
|
|
|
|
# SMTP
|
|
smtp:
|
|
host: barbotte.o2switch.net
|
|
port: 465
|
|
user: prokov@unikoffice.com
|
|
password_file: /secrets/prokov_smtp_pass
|
|
from: prokov@unikoffice.com
|
|
from_name: Prokov
|
|
tls: true # false = STARTTLS (587), true = TLS direct (465)
|
|
|
|
# Routes
|
|
routes:
|
|
# === AUTH ===
|
|
- path: /auth/register
|
|
method: POST
|
|
scenario: prokov/auth/register
|
|
auth: false
|
|
|
|
- path: /auth/login
|
|
method: POST
|
|
scenario: prokov/auth/login
|
|
auth: false
|
|
|
|
- path: /auth/logout
|
|
method: POST
|
|
scenario: prokov/auth/logout
|
|
|
|
- path: /auth/me
|
|
method: GET
|
|
scenario: prokov/auth/me
|
|
|
|
# === PROJECTS ===
|
|
- path: /projects
|
|
method: GET
|
|
scenario: prokov/projects/list
|
|
|
|
- path: /projects
|
|
method: POST
|
|
scenario: prokov/projects/create
|
|
|
|
- path: /projects/{id}
|
|
method: GET
|
|
scenario: prokov/projects/show
|
|
|
|
- path: /projects/{id}
|
|
method: PUT
|
|
scenario: prokov/projects/update
|
|
|
|
- path: /projects/{id}
|
|
method: DELETE
|
|
scenario: prokov/projects/delete
|
|
|
|
# === TASKS ===
|
|
- path: /tasks
|
|
method: GET
|
|
scenario: prokov/tasks/list
|
|
|
|
- path: /tasks
|
|
method: POST
|
|
scenario: prokov/tasks/create
|
|
|
|
- path: /tasks/{id}
|
|
method: GET
|
|
scenario: prokov/tasks/show
|
|
|
|
- path: /tasks/{id}
|
|
method: PUT
|
|
scenario: prokov/tasks/update
|
|
|
|
- path: /tasks/{id}
|
|
method: DELETE
|
|
scenario: prokov/tasks/delete
|
|
|
|
# === TAGS ===
|
|
- path: /tags
|
|
method: GET
|
|
scenario: prokov/tags/list
|
|
|
|
- path: /tags
|
|
method: POST
|
|
scenario: prokov/tags/create
|
|
|
|
- path: /tags/{id}
|
|
method: GET
|
|
scenario: prokov/tags/show
|
|
|
|
- path: /tags/{id}
|
|
method: PUT
|
|
scenario: prokov/tags/update
|
|
|
|
- path: /tags/{id}
|
|
method: DELETE
|
|
scenario: prokov/tags/delete
|
|
|
|
# === STATUSES ===
|
|
- path: /statuses
|
|
method: GET
|
|
scenario: prokov/statuses/list
|
|
|
|
- path: /statuses
|
|
method: POST
|
|
scenario: prokov/statuses/create
|
|
|
|
- path: /statuses/{id}
|
|
method: GET
|
|
scenario: prokov/statuses/show
|
|
|
|
- path: /statuses/{id}
|
|
method: PUT
|
|
scenario: prokov/statuses/update
|
|
|
|
- path: /statuses/{id}
|
|
method: DELETE
|
|
scenario: prokov/statuses/delete
|