Aller au contenu principal
Version: Next

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 :

  1. Bootstrap du SDK une seule fois au démarrage de l'app
  2. Fournir une session signée obtenue depuis votre backend
  3. Demander les permissions depuis la propre UX de votre app hôte au besoin
  4. 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'appBackend du partenaire
Signer userHash pour appId + externalUserIdBackend du partenaire
Recevoir et transmettre la session signéeApplication mobile
Réutiliser l'identité pour HTTP et MQTTSDK

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

ValeurDescription
productionEnvironnement de production
sandboxDéveloppement et tests
stagingPré-production
customEndpoints gérés par le partenaire

EixamBootstrapConfig

Obligatoire :

  • appId
  • environment

Optionnel :

  • initialSession — session signée à appliquer immédiatement
  • customEndpoints — obligatoire quand environment vaut custom
  • enableLogging
  • networkTimeout
  • defaultLocaleCode

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',
)
remarque

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égorieMéthodes
SessionsetSession(), clearSession(), getCurrentSession()
DiagnosticsgetOperationalDiagnostics(), watchOperationalDiagnostics()
DispositifconnectDevice(), getDeviceStatus(), deviceStatusStream
SOStriggerSos(), cancelSos(), getCurrentSosIncident(), getSosState()
ContactslistEmergencyContacts(), createEmergencyContact(), updateEmergencyContact()
PermissionsgetPermissionState(), requestLocationPermission(), …
Mode ProtectionevaluateProtectionReadiness(), enterProtectionMode(), getProtectionStatus()
Temps réelgetRealtimeConnectionState(), watchRealtimeEvents()
Registre de dispositifslistRegisteredDevices()