{
  "version": 1,
  "genere_le": "2026-08-08T22:34:29.143Z",
  "source": "https://github.com/florianmousseau/assistant/blob/main/setup/projets.md",
  "contrat": {
    "surface": "saine si 2xx et reponse non vide",
    "service": "un service ne rend pas 2xx a sa racine : son champ `attendu` dit ce qu'une racine SAINE repond, et c'est a lui qu'on compare",
    "health": "repond TOUJOURS 200. Le code HTTP dit si le site sert, le champ alerte (ok|attention|rouge|inconnu) dit s'il dit encore la verite. Une sonde SANS champ alerte, corps VIDE compris, est une liveness nue : elle ne se juge que sur son 200, et un corps vide n'y est jamais une casse (cleanpoker). Illisible ne vise qu'un corps qui pretend porter un verdict sans se lire."
  },
  "surfaces": [
    {
      "projet": "cleanpoker",
      "role": "app",
      "url": "https://cleanpoker.dev",
      "depot": "florianmousseau/cleanpoker",
      "health": null
    },
    {
      "projet": "fidalo",
      "role": "app",
      "url": "https://app.fidalo.co",
      "depot": "fidalodev/fidalo",
      "health": null
    },
    {
      "projet": "web",
      "role": "vitrine",
      "url": "https://fidalo.co",
      "depot": "fidalodev/web",
      "health": null
    },
    {
      "projet": "lacantabilite",
      "role": "app",
      "url": "https://app.lacantabilite.fr",
      "depot": "florianmousseau/lacantabilite",
      "health": null
    },
    {
      "projet": "lacantabilite",
      "role": "vitrine",
      "url": "https://lacantabilite.com",
      "depot": "florianmousseau/lacantabilite",
      "health": null
    },
    {
      "projet": "lacantabilite",
      "role": "vitrine",
      "url": "https://lacantabilite.fr",
      "depot": "florianmousseau/lacantabilite",
      "health": null
    },
    {
      "projet": "monaeeh",
      "role": "vitrine",
      "url": "https://monaeeh.fr",
      "depot": "florianmousseau/monaeeh",
      "health": null
    },
    {
      "projet": "relevedecarriere",
      "role": "vitrine",
      "url": "https://relevedecarriere.fr",
      "depot": "florianmousseau/relevedecarriere",
      "health": null
    },
    {
      "projet": "selfstore-web",
      "role": "vitrine",
      "url": "https://selfstore.dev",
      "depot": "selfstoredev/web",
      "health": null
    },
    {
      "projet": "truecopy-web",
      "role": "vitrine",
      "url": "https://truecopy.dev",
      "depot": "truecopydev/web",
      "health": null
    },
    {
      "projet": "quitalo",
      "role": "app",
      "url": "https://app.quitalo.fr",
      "depot": "florianmousseau/quitalo",
      "health": null
    },
    {
      "projet": "quitalo-web",
      "role": "vitrine",
      "url": "https://quitalo.fr",
      "depot": "florianmousseau/quitalo-web",
      "health": null
    },
    {
      "projet": "quivad",
      "role": "app",
      "url": "https://quivad.fr",
      "depot": "florianmousseau/quivad",
      "health": "https://quivad.fr/health"
    },
    {
      "projet": "quivad",
      "role": "app",
      "url": "https://quivad.com",
      "depot": "florianmousseau/quivad",
      "health": "https://quivad.fr/health"
    },
    {
      "projet": "quivad",
      "role": "app",
      "url": "https://quivad.de",
      "depot": "florianmousseau/quivad",
      "health": "https://quivad.fr/health"
    },
    {
      "projet": "quivad",
      "role": "app",
      "url": "https://quivad.it",
      "depot": "florianmousseau/quivad",
      "health": "https://quivad.fr/health"
    },
    {
      "projet": "quivad",
      "role": "app",
      "url": "https://quivad.be",
      "depot": "florianmousseau/quivad",
      "health": "https://quivad.fr/health"
    },
    {
      "projet": "quivad",
      "role": "app",
      "url": "https://quivad.eu",
      "depot": "florianmousseau/quivad",
      "health": "https://quivad.fr/health"
    },
    {
      "projet": "titelia",
      "role": "app",
      "url": "https://titelia.com",
      "depot": "florianmousseau/titelia",
      "health": "https://titelia.com/health"
    },
    {
      "projet": "api",
      "role": "service",
      "url": "https://api.fidalo.co",
      "depot": "fidalodev/api",
      "attendu": "401 (302 vers /admin puis mire d authentification) ; un 5xx ou un timeout est une casse",
      "health": null
    },
    {
      "projet": "cleanpoker",
      "role": "service",
      "url": "https://cleanpoker-backend.fly.dev",
      "depot": "florianmousseau/cleanpoker",
      "attendu": "404 a la racine (aucune route ne vit la) ; sa sonde est /health",
      "health": "https://cleanpoker-backend.fly.dev/health"
    }
  ]
}
