docs(ideai): met à jour les tickets #47/#49 après l'auth serveur
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
issueRef: "#47"
|
issueRef: "#47"
|
||||||
version: 1
|
version: 2
|
||||||
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||||
updatedAt: 1784411985578
|
updatedAt: 1784448362531
|
||||||
---
|
---
|
||||||
|
|||||||
@ -2,15 +2,15 @@
|
|||||||
id: "f3283335-8f96-40aa-88a4-bcc58a530ad2"
|
id: "f3283335-8f96-40aa-88a4-bcc58a530ad2"
|
||||||
number: 47
|
number: 47
|
||||||
title: "[Server] Scaffolding serveur Dart headless hexagonal"
|
title: "[Server] Scaffolding serveur Dart headless hexagonal"
|
||||||
status: "open"
|
status: "closed"
|
||||||
priority: "low"
|
priority: "low"
|
||||||
sprint: null
|
sprint: null
|
||||||
links: [{"target":"#46","kind":"relatesTo"}]
|
links: [{"target":"#46","kind":"relatesTo"}]
|
||||||
agentRefs: []
|
agentRefs: []
|
||||||
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
||||||
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||||
createdAt: 1784411985578
|
createdAt: 1784411985578
|
||||||
updatedAt: 1784411985578
|
updatedAt: 1784448362531
|
||||||
version: 1
|
version: 2
|
||||||
---
|
---
|
||||||
Créer le sous-répertoire `server/` à la racine avec une application Dart headless basée sur `shelf`/`shelf_router`, structure hexagonale (`domain/`, `application/`, `infrastructure/`, `api/`), configuration env, healthcheck et tests de base. Inclure `Dockerfile`, `.env.example`, `docker-compose.yaml` paramétrable et un README d'exploitation minimal. Le serveur doit écouter derrière reverse proxy sans HTTPS interne obligatoire.
|
Créer le sous-répertoire `server/` à la racine avec une application Dart headless basée sur `shelf`/`shelf_router`, structure hexagonale (`domain/`, `application/`, `infrastructure/`, `api/`), configuration env, healthcheck et tests de base. Inclure `Dockerfile`, `.env.example`, `docker-compose.yaml` paramétrable et un README d'exploitation minimal. Le serveur doit écouter derrière reverse proxy sans HTTPS interne obligatoire.
|
||||||
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
issueRef: "#49"
|
issueRef: "#49"
|
||||||
version: 1
|
version: 3
|
||||||
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||||
updatedAt: 1784411997184
|
updatedAt: 1784448367646
|
||||||
---
|
---
|
||||||
|
Migrations SQL implémentées et revues manuellement (5 tables, contraintes, index, trigger `server_updated_at`), `dart analyze`/`dart test` verts. Non vérifié en conditions réelles : sandbox Main sans accès au daemon Docker → impossible de lancer un vrai PostgreSQL et d'exécuter `TEST_DATABASE_URL=... dart test` ou `dart run bin/migrate.dart` contre une vraie base. À faire avant mise en prod : lancer `docker compose up -d postgres` (une fois #52 livré) et rejouer `bin/migrate.dart` + le test d'intégration pour confirmer que les migrations s'appliquent sans erreur sur un vrai PostgreSQL 16.
|
||||||
@ -2,15 +2,15 @@
|
|||||||
id: "c73b39be-061c-44b4-b5c3-f482878fe58d"
|
id: "c73b39be-061c-44b4-b5c3-f482878fe58d"
|
||||||
number: 49
|
number: 49
|
||||||
title: "[Server] Schéma PostgreSQL sync-ready GameTime"
|
title: "[Server] Schéma PostgreSQL sync-ready GameTime"
|
||||||
status: "open"
|
status: "qa"
|
||||||
priority: "low"
|
priority: "low"
|
||||||
sprint: null
|
sprint: null
|
||||||
links: [{"target":"#46","kind":"relatesTo"},{"target":"#47","kind":"dependsOn"}]
|
links: [{"target":"#46","kind":"relatesTo"},{"target":"#47","kind":"dependsOn"}]
|
||||||
agentRefs: []
|
agentRefs: []
|
||||||
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
||||||
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||||
createdAt: 1784411997184
|
createdAt: 1784411997184
|
||||||
updatedAt: 1784411997184
|
updatedAt: 1784448367646
|
||||||
version: 1
|
version: 3
|
||||||
---
|
---
|
||||||
Créer le modèle serveur PostgreSQL pour les ressources synchronisables : Exercise, Program, WorkoutTemplate, WorkoutHistory, MediaAsset metadata, plus tables d'ownership par utilisateur. Chaque ressource doit stocker `ownerUserId`, `clientId`, `serverId`, `payloadJson`, `clientUpdatedAt`, `serverUpdatedAt`, `deletedAt`, `schemaVersion`, `originDeviceId`. Prévoir contraintes d'unicité `(owner_user_id, resource_type, client_id)`, index pull incrémental `(owner_user_id, resource_type, server_updated_at)`, migrations et tests repository.
|
Créer le modèle serveur PostgreSQL pour les ressources synchronisables : Exercise, Program, WorkoutTemplate, WorkoutHistory, MediaAsset metadata, plus tables d'ownership par utilisateur. Chaque ressource doit stocker `ownerUserId`, `clientId`, `serverId`, `payloadJson`, `clientUpdatedAt`, `serverUpdatedAt`, `deletedAt`, `schemaVersion`, `originDeviceId`. Prévoir contraintes d'unicité `(owner_user_id, resource_type, client_id)`, index pull incrémental `(owner_user_id, resource_type, server_updated_at)`, migrations et tests repository.
|
||||||
@ -537,11 +537,11 @@
|
|||||||
"issueRef": "#47",
|
"issueRef": "#47",
|
||||||
"path": "47",
|
"path": "47",
|
||||||
"title": "[Server] Scaffolding serveur Dart headless hexagonal",
|
"title": "[Server] Scaffolding serveur Dart headless hexagonal",
|
||||||
"status": "open",
|
"status": "closed",
|
||||||
"priority": "low",
|
"priority": "low",
|
||||||
"sprint": null,
|
"sprint": null,
|
||||||
"assignedAgentIds": [],
|
"assignedAgentIds": [],
|
||||||
"updatedAt": 1784411985578
|
"updatedAt": 1784448362531
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"issueRef": "#48",
|
"issueRef": "#48",
|
||||||
@ -557,11 +557,11 @@
|
|||||||
"issueRef": "#49",
|
"issueRef": "#49",
|
||||||
"path": "49",
|
"path": "49",
|
||||||
"title": "[Server] Schéma PostgreSQL sync-ready GameTime",
|
"title": "[Server] Schéma PostgreSQL sync-ready GameTime",
|
||||||
"status": "open",
|
"status": "qa",
|
||||||
"priority": "low",
|
"priority": "low",
|
||||||
"sprint": null,
|
"sprint": null,
|
||||||
"assignedAgentIds": [],
|
"assignedAgentIds": [],
|
||||||
"updatedAt": 1784411997184
|
"updatedAt": 1784448367646
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"issueRef": "#50",
|
"issueRef": "#50",
|
||||||
|
|||||||
Reference in New Issue
Block a user