SOGOMS v1.0.1 - Microservices logs, smtp et roadmap

Nouveaux services:
- sogoms-logs : logging centralisé avec rotation
- sogoms-smtp : envoi emails avec templates YAML

Nouvelles fonctionnalités:
- Queries YAML externalisées (config/queries/{app}/)
- CRUD générique paramétrable
- Filtres par rôle (default, admin)
- Templates email (config/emails/{app}/)

Documentation:
- DOCTECH.md : documentation technique complète
- README.md : vision et roadmap
- TODO.md : phases 11-15 planifiées

Roadmap:
- Phase 11: sogoms-crypt (chiffrement)
- Phase 12: sogoms-imap/mailproc (emails)
- Phase 13: sogoms-cron (tâches planifiées)
- Phase 14: sogoms-push (MQTT temps réel)
- Phase 15: sogoms-schema (API auto-générée)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-16 14:58:46 +01:00
parent 7e27f87d6f
commit a4694a10d1
36 changed files with 2786 additions and 2387 deletions

View File

@@ -0,0 +1,25 @@
# Requêtes d'authentification
# Données chargées après login réussi
login_data:
projects: >
SELECT id, parent_id, name, description, position, created_at, updated_at
FROM projects WHERE user_id = ? ORDER BY position
tasks: >
SELECT id, project_id, status_id, title, description, priority,
date_start, date_end, time_estimated, time_spent, billing, position,
created_at, updated_at
FROM tasks WHERE user_id = ? ORDER BY position
tags: >
SELECT id, name, color, created_at
FROM tags WHERE user_id = ?
statuses: >
SELECT id, project_id, code, name, color, position, created_at
FROM statuses WHERE user_id = ? ORDER BY code
# Requêtes unitaires
user_by_email: >
SELECT id, email, name, password FROM users WHERE email = ?
user_by_id: >
SELECT id, email, name, created_at FROM users WHERE id = ?

View File

@@ -0,0 +1,44 @@
# Requêtes CRUD projects
list:
query: >
SELECT id, parent_id, name, description, position, created_at, updated_at
FROM projects
filters:
default: "user_id = :user_id"
admin: ""
order: "position ASC"
show:
query: >
SELECT id, parent_id, name, description, position, created_at, updated_at
FROM projects WHERE id = :id
filters:
default: "user_id = :user_id"
admin: ""
create:
table: projects
fields:
- user_id
- parent_id
- name
- description
- position
update:
table: projects
fields:
- parent_id
- name
- description
- position
filters:
default: "user_id = :user_id"
admin: ""
delete:
table: projects
filters:
default: "user_id = :user_id"
admin: ""

View File

@@ -0,0 +1,55 @@
# Requêtes CRUD statuses
list:
query: >
SELECT id, project_id, code, name, color, position, created_at
FROM statuses
filters:
default: "user_id = :user_id"
admin: ""
order: "code ASC"
list_by_project:
query: >
SELECT id, project_id, code, name, color, position, created_at
FROM statuses WHERE (project_id = :project_id OR project_id IS NULL)
filters:
default: "user_id = :user_id"
admin: ""
order: "code ASC"
show:
query: >
SELECT id, project_id, code, name, color, position, created_at
FROM statuses WHERE id = :id
filters:
default: "user_id = :user_id"
admin: ""
create:
table: statuses
fields:
- user_id
- project_id
- code
- name
- color
- position
update:
table: statuses
fields:
- project_id
- code
- name
- color
- position
filters:
default: "user_id = :user_id"
admin: ""
delete:
table: statuses
filters:
default: "user_id = :user_id"
admin: ""

View File

@@ -0,0 +1,39 @@
# Requêtes CRUD tags
list:
query: >
SELECT id, name, color, created_at
FROM tags
filters:
default: "user_id = :user_id"
admin: ""
show:
query: >
SELECT id, name, color, created_at
FROM tags WHERE id = :id
filters:
default: "user_id = :user_id"
admin: ""
create:
table: tags
fields:
- user_id
- name
- color
update:
table: tags
fields:
- name
- color
filters:
default: "user_id = :user_id"
admin: ""
delete:
table: tags
filters:
default: "user_id = :user_id"
admin: ""

View File

@@ -0,0 +1,73 @@
# Requêtes CRUD tasks
list:
query: >
SELECT id, project_id, status_id, title, description, priority,
date_start, date_end, time_estimated, time_spent, billing, position,
created_at, updated_at
FROM tasks
filters:
default: "user_id = :user_id"
admin: ""
order: "position ASC"
list_by_project:
query: >
SELECT id, project_id, status_id, title, description, priority,
date_start, date_end, time_estimated, time_spent, billing, position,
created_at, updated_at
FROM tasks WHERE project_id = :project_id
filters:
default: "user_id = :user_id"
admin: ""
order: "position ASC"
show:
query: >
SELECT id, project_id, status_id, title, description, priority,
date_start, date_end, time_estimated, time_spent, billing, position,
created_at, updated_at
FROM tasks WHERE id = :id
filters:
default: "user_id = :user_id"
admin: ""
create:
table: tasks
fields:
- user_id
- project_id
- status_id
- title
- description
- priority
- date_start
- date_end
- time_estimated
- time_spent
- billing
- position
update:
table: tasks
fields:
- project_id
- status_id
- title
- description
- priority
- date_start
- date_end
- time_estimated
- time_spent
- billing
- position
filters:
default: "user_id = :user_id"
admin: ""
delete:
table: tasks
filters:
default: "user_id = :user_id"
admin: ""