
# Construire une appli

Les développeurs peuvent construire des applis personnalisées pour SweetHive — une
petite vue de données intégrée dans un contexte, ou un produit complet sur sa propre
URL. Vous enregistrez l'appli une fois, recevez des identifiants client, et
développez avec le **SDK App**.

## Deux types d'appli

| | **Intégrée** | **Externe** |
|---|---|---|
| Où elle s'exécute | dans l'interface de contexte SweetHive (une iframe sandboxée) | sa propre URL / son propre domaine, lancée depuis SweetHive |
| Idéale pour | vues de données, formulaires, tableaux de bord cadrés sur un contexte | produits complets avec leur propre interface |

Les deux s'authentifient de la même façon : un **jeton à portée limitée de courte
durée**, borné côté serveur par la portée de l'installation **et** la visibilité en
temps réel de la personne qui regarde. Votre appli ne voit jamais plus que ce que la
personne qui l'utilise peut voir, et l'accès est révoqué à l'instant où elle le perd.

## Enregistrer et développer

1. Ouvrez **Développeur → Applis** depuis le menu utilisateur.
2. Choisissez **Enregistrer une appli** : nommez-la, choisissez *Intégrée* ou
   *Externe*, définissez l'URL, l'icône et la capacité.
3. Sauvegardez l'**ID client et le secret** (affichés une seule fois).
4. **Téléchargez le guide de développement du SDK (.md)** — le contrat complet : la
   poignée de main iframe, l'authentification, l'API de données cadrée, les tests et
   la publication. Déposez-le dans votre dépôt et développez avec votre assistant de
   codage IA.
   Également disponible ici : [SWEETHIVE_APP_SDK.md](/downloads/SWEETHIVE_APP_SDK.md).
5. Passez l'appli en **Active** pour que les administrateurs de hive puissent
   l'installer depuis *Contexte → Applis → Ajouter une appli*.

## Comment fonctionne le standard

- **Les applis intégrées** s'exécutent dans une iframe sandboxée et reçoivent un
  jeton à portée limitée de courte durée via une poignée de main `postMessage` —
  jamais de cookie, ce qui fonctionne donc aussi dans les applications mobiles. Votre
  appli doit autoriser SweetHive à l'encadrer (une CSP `frame-ancestors` qui inclut
  les origines des applications mobiles — le guide du SDK donne l'en-tête exact).
- **Les applis externes** s'ouvrent sur leur propre URL avec un lancement signé ; sur
  mobile, elles s'ouvrent dans le navigateur intégré natif.
- Chaque appel de données est borné côté serveur par la portée de l'installation
  recoupée avec la visibilité en temps réel de la personne qui regarde — même loi,
  même audit que pour tout acteur SweetHive.

## Applis externes et hubs

Une appli externe est un produit complet sur sa propre URL. SweetHive affiche
une tuile de lancement ; au clic, l'appli s'ouvre avec un **lancement signé** et
démarre sa propre session — sur mobile, dans le navigateur natif intégré.

Les applis externes sur une origine autorisée peuvent aussi connecter les
utilisateurs directement avec leur compte SweetHive (**SSO**) : avec une session
SweetHive active, aucun mot de passe n'est demandé ; sinon l'utilisateur se
connecte sur la page de connexion SweetHive et revient directement dans
l'appli. Demandez l'autorisation de l'origine lors de l'enregistrement de
l'appli.

### Hubs multi-hive : une shell, plusieurs applis

Un produit qui gère plusieurs hives depuis une seule interface suit le
**standard hub shell** — une shell réutilisable façonnée par un manifest :

- La **shell** fournit, une seule fois pour chaque appli : la connexion SSO, le
  sélecteur de hive en haut à droite, la gestion de l'Équipe et des
  Invitations, le thème clair/sombre et la barre latérale repliable.
- Le **manifest** (enregistré avec l'inscription de l'appli) déclare la marque
  et les entrées du panneau gauche. Chaque entrée ouvre une vue intégrée à la
  shell ou — le point clé — **n'importe quelle appli SweetHive embarquée rendue
  dans un frame, sans modification** : un seul build sert l'interface du
  contexte et le hub.
- Changer de hive redéfinit la portée de tout : la shell résout l'installation
  de l'appli dans le hive sélectionné et recharge la vue active, de sorte que
  chaque écran suit le hive — y compris les états vides pour les hives où
  l'appli n'est pas installée.

Le guide du SDK contient le contrat complet : le schéma du manifest, le
handshake des vues et les pièges à éviter.

## Tester et publier

Enregistrez votre appli avec une URL localhost, installez-la dans un contexte de
test, et la poignée de main délivre un vrai jeton à portée limitée sur vos données.
Quand elle est prête, passez-la en **Active** — et désactivez-la à tout moment ; les
installations s'arrêtent immédiatement.
