PWA2APP Documentation

Applications

Référence technique générée depuis le contrat de la plateforme : les descriptions sont en français.

GET /api/v1/applications

`GET /applications` (§19.5) — nécessite `?org_id=`.

  • org_id (query, requis) — Identifiant de l'organisation
  • include_archived (query) — Inclure les applications archivées
  • 200 — Applications de l'organisation
  • 401 — Non authentifié ou 2FA requise
  • 404 — Non membre de cette organisation
  • 422 — org_id manquant ou invalide

POST /api/v1/applications

`POST /applications` (§19.5, §7.2) — nécessite `ApplicationsWrite`.

Corps de requête : JSON

  • 200 — Application créée en DRAFT
  • 401 — Non authentifié ou 2FA requise
  • 402 — Quota gratuit dépassé, abonnement requis (§7.2)
  • 403 — CSRF invalide ou permission refusée
  • 404 — Non membre de cette organisation
  • 409 — Identifiant court déjà utilisé
  • 422 — Validation échouée

GET /api/v1/applications/{id}

`GET /applications/{id}` (§19.5).

  • id (path, requis) — Identifiant de l'application
  • 200 — Application
  • 401 — Non authentifié ou 2FA requise
  • 404 — Application introuvable ou non membre de son organisation

PATCH /api/v1/applications/{id}

`PATCH /applications/{id}` (§19.5) — nécessite `ApplicationsWrite`.

Corps de requête : JSON

  • id (path, requis) — Identifiant de l'application
  • 204 — Application mise à jour
  • 401 — Non authentifié ou 2FA requise
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable
  • 409 — Identifiant court déjà utilisé

DELETE /api/v1/applications/{id}

`DELETE /applications/{id}` (§5.8, §19.5) — nécessite `ApplicationsDelete`. L'application

  • id (path, requis) — Identifiant de l'application
  • 204 — Application supprimée (logiquement)
  • 401 — Non authentifié ou 2FA requise
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable
  • 409 — L'application n'est pas archivée

POST /api/v1/applications/{id}/archive

`POST /applications/{id}/archive` (§5.8, §19.5) — nécessite `ApplicationsWrite`.

  • id (path, requis) — Identifiant de l'application
  • 204 — Application archivée
  • 401 — Non authentifié ou 2FA requise
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable
  • 409 — Transition non autorisée depuis l'état courant

GET /api/v1/applications/{id}/config

`GET /applications/{id}/config` (§19.5) — pose l'en-tête `ETag` pour le verrouillage

  • id (path, requis) — Identifiant de l'application
  • 200 — Configuration courante (en-tête ETag posé)
  • 401 — Non authentifié ou 2FA requise
  • 404 — Application ou configuration introuvable

PUT /api/v1/applications/{id}/config

`PUT /applications/{id}/config` (§19.1 : `If-Match` obligatoire, verrouillage optimiste ;

Corps de requête : JSON

  • id (path, requis) — Identifiant de l'application
  • 204 — Configuration remplacée
  • 401 — Non authentifié ou 2FA requise
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable
  • 412 — La configuration a changé depuis la dernière lecture (If-Match)
  • 422 — Configuration invalide au regard du schéma

POST /api/v1/applications/{id}/config/validate

`POST /applications/{id}/config/validate` (§19.5) — valide sans enregistrer.

Corps de requête : JSON

  • id (path, requis) — Identifiant de l'application
  • 204 — Configuration valide
  • 401 — Non authentifié ou 2FA requise
  • 404 — Application introuvable
  • 422 — Configuration invalide au regard du schéma

POST /api/v1/applications/{id}/duplicate

`POST /applications/{id}/duplicate` (§19.5, §7.2) — nécessite `ApplicationsWrite`. Consomme

  • id (path, requis) — Identifiant de l'application à dupliquer
  • 200 — Copie créée en DRAFT
  • 401 — Non authentifié ou 2FA requise
  • 402 — Quota gratuit dépassé, abonnement requis (§7.2)
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable

GET /api/v1/applications/{id}/icon

`GET /applications/{id}/icon` — icône fournie par le développeur (404 si aucune : les

  • id (path, requis) — Identifiant de l'application
  • 200 — Icône enregistrée
  • 404 — Aucune icône fournie

PUT /api/v1/applications/{id}/icon

`PUT /applications/{id}/icon` — enregistre l'icône (nécessite `ApplicationsWrite`). Elle

Corps de requête : JSON

  • id (path, requis) — Identifiant de l'application
  • 204 — Icône enregistrée
  • 404 — Application introuvable
  • 422 — Image refusée

DELETE /api/v1/applications/{id}/icon

`DELETE /applications/{id}/icon` — retire l'icône fournie (retour à l'icône du manifeste).

  • id (path, requis) — Identifiant de l'application
  • 204 — Icône retirée

POST /api/v1/applications/{id}/restore

`POST /applications/{id}/restore` (§5.8, §19.5) — nécessite `ApplicationsWrite`.

  • id (path, requis) — Identifiant de l'application
  • 204 — Application restaurée à son état précédent
  • 401 — Non authentifié ou 2FA requise
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable
  • 409 — L'application n'est pas archivée

GET /api/v1/applications/{id}/versions

`GET /applications/{id}/versions` (§19.5).

  • id (path, requis) — Identifiant de l'application
  • 200 — Versions, de la plus récente à la plus ancienne
  • 401 — Non authentifié ou 2FA requise
  • 404 — Application introuvable

POST /api/v1/applications/{id}/versions

`POST /applications/{id}/versions` (§16.1-16.2, §19.5) — nécessite `ApplicationsWrite`.

Corps de requête : JSON

  • id (path, requis) — Identifiant de l'application
  • 200 — Version créée
  • 401 — Non authentifié ou 2FA requise
  • 403 — CSRF invalide ou permission refusée
  • 404 — Application introuvable
  • 409 — Version déjà existante pour cette application
  • 422 — SemVer invalide ou code de version non croissant