Vue d'ensemble du SDK
L'Eixam Connect SDK est la couche d'intégration embarquable de la plateforme de sécurité connectée Eixam. Il détient la logique de sécurité et de runtime afin que votre application hôte puisse rester légère et centrée sur l'UX.
Le modèle mental pour le partenaire est simple :
- Bootstrap du SDK une seule fois au démarrage de l'app
- Fournir une session signée obtenue depuis votre backend
- Demander les permissions depuis la propre UX de votre app hôte au besoin
- Piloter les flux de sécurité via les méthodes et streams du SDK (SOS, dispositif, tracking, contacts)
Sessions signées et responsabilités backend
Le SDK utilise un modèle de session signée pour s'authentifier sur les transports HTTP et MQTT. Votre backend est propriétaire de l'étape de signature — le secret de l'app ne doit jamais se trouver dans le client mobile.
| Responsabilité | Propriétaire |
|---|---|
| Stocker le secret de l'app | Backend du partenaire |
Signer userHash pour appId + externalUserId | Backend du partenaire |
| Recevoir et transmettre la session signée | Application mobile |
| Réutiliser l'identité pour HTTP et MQTT | SDK |
Auth HTTP :
X-App-ID: <appId>
X-User-ID: <externalUserId>
Authorization: Bearer <userHash>
Auth MQTT (sans préfixe Bearer) :
username: sdk:<appId>:<externalUserId>
password: <userHash>
Bootstrap
Exemple minimal
final sdk = await EixamConnectSdk.bootstrap(
const EixamBootstrapConfig(
appId: 'partner-app',
environment: EixamEnvironment.sandbox,
initialSession: EixamSession.signed(
appId: 'partner-app',
externalUserId: 'partner-user-123',
userHash: 'signed-session-hash',
),
),
);
EixamEnvironment
| Valeur | Description |
|---|---|
production | Environnement de production |
sandbox | Développement et tests |
staging | Pré-production |
custom | Endpoints gérés par le partenaire |
EixamBootstrapConfig
Obligatoire :
appIdenvironment
Optionnel :
initialSession— session signée à appliquer immédiatementcustomEndpoints— obligatoire quandenvironmentvautcustomenableLoggingnetworkTimeoutdefaultLocaleCode
Endpoints personnalisés
Utilisez EixamEnvironment.custom avec EixamCustomEndpoints lorsque vous contrôlez votre propre infrastructure :
const EixamCustomEndpoints(
apiBaseUrl: 'https://partner-api.example.com',
mqttUrl: 'ssl://partner-mqtt.example.com:8883',
)
mqttUrl et websocketUrl sont les noms de champs stables. L'URI du broker peut utiliser ssl://, tls://, tcp://, ws:// ou wss:// selon l'environnement et le client de transport.
Garanties du bootstrap
- Les environnements standard résolvent la configuration des endpoints en interne
- Les endpoints personnalisés sont validés avant usage
- Les sessions restaurées avec des incohérences sont effacées automatiquement
- Le SDK conserve le contrôle de la sémantique du cycle de vie des sessions
- Le bootstrap ne demande pas de permissions à l'exécution et n'effectue pas d'appairage de dispositif de lui-même
Capacités
| Catégorie | Méthodes |
|---|---|
| Session | setSession(), clearSession(), getCurrentSession() |
| Diagnostics | getOperationalDiagnostics(), watchOperationalDiagnostics() |
| Dispositif | connectDevice(), getDeviceStatus(), deviceStatusStream |
| SOS | triggerSos(), cancelSos(), getCurrentSosIncident(), getSosState() |
| Contacts | listEmergencyContacts(), createEmergencyContact(), updateEmergencyContact() |
| Permissions | getPermissionState(), requestLocationPermission(), … |
| Mode Protection | evaluateProtectionReadiness(), enterProtectionMode(), getProtectionStatus() |
| Temps réel | getRealtimeConnectionState(), watchRealtimeEvents() |
| Registre de dispositifs | listRegisteredDevices() |