# Vue d’ensemble

> Ce que l’API Vimine offre à qui développe pour une association, et les notions à connaître avant de commencer.

URL: https://developers.vimine.network/fr/start/overview/

Vimine est la plateforme de gestion des membres des APS et des organisations italiennes du tiers secteur. Chaque
association a ses membres, ses cartes, son statuto (ses statuts) ; avec l’API, un site ou une application **de
l’association, ou pour l’association**, peut utiliser tout cela sans rien reconstruire.

## Ce que vous pouvez faire

| | Comment | Avec quels identifiants |
|---|---|---|
| **Se connecter avec Vimine** — les membres entrent sur votre site avec leur compte | OAuth 2.1 + PKCE, page de connexion et de consentement sur vimine.network | un client *public* ou *natif* (`client_id` seulement) |
| **API membre** — profil, carte et verdict, demande d’adhésion, statuto, applications connectées | `GET /v1/me`, `/v1/me/membership`, … avec le jeton du membre | les autorisations que le membre a accordées |
| **Intégrations serveur** — les systèmes de l’association lisent l’état des cartes | `client_credentials` | un client *confidentiel* (`client_id` + `client_secret`) |
| **Vérification des cartes** — « cette carte est-elle active en ce moment ? », hors ligne aussi | `GET /v1/verify/{card_token}`, clés publiques Ed25519 | aucun |
| **Profil public et adhésion** — identité visuelle, types d’adhésion, statuto en vigueur ; formulaire d’adhésion | `GET /v1/aps/{slug}`, page `enroll` intégrable | aucun |

## Notions

- **Association et slug.** Chaque association a un *slug* (`https://app.vimine.network/enroll/<slug>`) ;
  les clients appartiennent à une association et les jetons qu’ils émettent ne valent que pour celle-ci.
- **Client.** Une intégration enregistrée depuis la console **Développeurs** de l’application Vimine : il a un type
  (site web, application native, serveur), un environnement (*Test* ou *Production*), des redirect URI, des origines
  autorisées et les autorisations qu’il peut demander. Voir [Enregistrer un client](https://developers.vimine.network/fr/start/register-a-client/).
- **Autorisations (scopes).** Ce qu’un jeton peut faire : `profile:read`, `membership:read`, `membership:request`, …
  Le membre les voit et les accorde sur la page de consentement. Tableau complet dans
  [Autorisations, erreurs et limites](https://developers.vimine.network/fr/guides/scopes-and-errors/).
- **Jetons.** Le jeton d’accès du membre dure 10 minutes ; le jeton de rafraîchissement change à chaque utilisation
  et dure 30 jours (14 d’inactivité). Le jeton d’un client confidentiel dure 1 heure. Le SDK renouvelle tout de lui-même.
- **`sub`.** L’identifiant du membre que vous voyez dans les jetons et dans `/v1/me` (`vms_…`) est **propre à votre
  association** : stable dans le temps, différent dans chaque association, jamais un identifiant interne.
- **Verdict.** Ce qui compte à l’entrée : `valid`, `expired`, `statuto_required` (la nouvelle acceptation du statuto
  est en retard) ou `inactive`.
- **Jeton de carte.** La carte numérique est un jeton signé (`vmt_…`) affiché sous forme de code QR, avec une fenêtre
  de validité ; il change à chaque changement d’état et, de toute façon, tous les 90 jours.
- **Sandbox.** Une association jumelle avec des membres synthétiques dans tous les états, où les clients de test sont
  actifs immédiatement. Voir [Sandbox et clients de test](https://developers.vimine.network/fr/guides/sandbox/).

## Où se trouvent les choses

| | |
|---|---|
| Pages de connexion, de consentement et de déconnexion | `https://app.vimine.network/authorize`, `/oauth/logout` |
| API | `https://api.vimine.network/v1/…` — document OpenAPI sur `/v1/openapi.json`, découverte sur `/.well-known/oauth-authorization-server` |
| Clés publiques des cartes | `https://api.vimine.network/.well-known/vimine-card-keys.json` |
| SDK | `@vimine/sdk` sur npm : `@vimine/sdk` (navigateur), `@vimine/sdk/react`, `@vimine/sdk/server` |
| Pour un assistant de programmation | `https://developers.vimine.network/fr/llms.txt` : l'index des pages en Markdown, avec les règles à suivre ; `llms-full.txt` tout dans un seul fichier ; chaque page en Markdown, `/fr/guides/sign-in/` → `/fr/guides/sign-in.md` |

## Étapes suivantes

1. [Enregistrez un client](https://developers.vimine.network/fr/start/register-a-client/) depuis la console.
2. [Installez le SDK](https://developers.vimine.network/fr/start/install/).
3. Suivez [Se connecter avec Vimine](https://developers.vimine.network/fr/guides/sign-in/), ou [Intégrations serveur](https://developers.vimine.network/fr/guides/server/) si vous
   travaillez sur les systèmes de l’association.
