Skip to main content

lighthouse_north_client 0.2.3 copy "lighthouse_north_client: ^0.2.3" to clipboard
lighthouse_north_client: ^0.2.3 copied to clipboard

SDK Flutter oficial para integrar o app do cliente à plataforma Lighthouse North de disparo push: registro de device token com evidência de consentimento (LGPD), heartbeat e opt-out fácil e gratuito. [...]

Changelog — client-flutter (CODINOME; nome de publicação a definir) #

Formato:keep a changelog / semver. O pacote está em 0.x — a API pública pode mudar até o nome oficial + 1.0.

0.2.3 #

  • Simplified example: 95 lines, only essential integration pattern

0.2.2 #

0.2.1 #

  • Clean README: user-focused documentation, no internal jargon
  • Updated import path to lighthouse_north_client

0.2.0 (3.3 — frente B) #

  • Android embutido: estado local cifrado no Android Keystore (AES-256-GCM, IV novo por write, migração e REMOÇÃO do plaintext legado 3.2, fail-closed com storage_error tipado); onNewToken → evento no canal → rotação automática no Dart (LighthouseNorthClientPlugin.dispatchNewToken para hosts com service próprio); correções de embedding reveladas pela 1ª compilação real (lifecycle-common pinado em 2.7.0 = embedding; ActivityAware com assinaturas atuais; observer no lifecycle do ACTIVITY binding).
  • iOS embutido: estado local na Keychain (migração e remoção do UserDefaults legado, fail-closed); getToken REAL via Firebase do host detectado em runtime (NSClassFromString("FIRMessaging") — sem dependência no podspec); sem Firebase → firebase_not_configured tipado como antes. PENDENTE: build em macOS (sem Xcode na máquina da frente B).
  • Dart: handleTokenRotation(newToken) público + stream onTokenRotated
    • dispatcher único do canal (permissão + rotação); DeviceSdkState.fromJsonString agora DESCARTA versão desconhecida (contrato §5 — antes tolerava; paridade com os codecs nativos).
  • Example: manifest debug ganha usesCleartextTraffic (loopback dev via adb reverse; release segue https-only).
  • Evidência: 1ª build real do example no emulador (register 201 + opt-out com revoke/unregister + audits na API real do compose); testes 76 → 87 (rotação, dispatcher de canal, version check).

0.1.0 — 2026-09-20 (fatia 3.2: SDK de referência) #

Primeira versão do SDK Flutter da plataforma Lighthouse North (push).

Adicionado #

  • LighthouseNorthClient.init(appKey, {apiBaseUrl, httpClient, tokenProvider, stateStore, logger, clock, scheduler, random}) — todas as dependências injetáveis.
  • registerForPush({contactRef?, policyVersion?}) — fluxo completo: permissão do OS → token (Firebase do host) → POST /v1/devices com consent {granted, capturedAt, policyVersion?} → persistência local mínima. Permissão negada → PushPermissionDeniedException (sem registro, sem crash).
  • startHeartbeat/stopHeartbeat — 24h default com jitter ±10%, sobrevive a restart (retomada no init + refresh imediato), falhas de rede não derrubam o ciclo.
  • optOut() — REQUISITO LEGAL BLOQUEANTE: best-effort (revoga consent ANTES do unregister), nunca lança por rede, resultado por passo; falha total preserva estado para re-tentativa.
  • onPermissionRevoked — watcher da permissão do OS: unregister automático (cobrança honesta) + evento para UX do host; contactRef/policyVersion preservados para re-consentimento.
  • Transporte único: TLS-only (http só loopback), timeout 10s, retry backoff exponencial + jitter ±25% (máx 3, só idempotentes, só 408/429/5xx), User-Agent próprio, segredos sempre mascarados.
  • Platform channel lighthouse_north_client (contrato em docs/NATIVE_CONTRACT.md): Android completo (permissão 13+, FCM do host via compileOnly, SharedPreferences, lifecycle watcher); iOS permissão+storage+watcher (getToken nativo chega na 3.3 — até lá provider Dart do host).
  • FakeTokenProvider, FakeClock, FakeScheduler, FixedLighthouse NorthRandom, InMemoryDeviceStateStore, InMemoryLighthouse NorthLogger — exportados para testes do host.
  • example/ — app mínimo com o fluxo legal (opt-in + opt-out obrigatório na UI) e 2 widget tests.
  • 70 testes (registro feliz/negado, minimização de corpo, retry/backoff/jitter limites, TLS-only, opt-out completo/parcial/total, heartbeat jitter/restart, permission watcher, storage, channel mocks).

Notas #

  • Nome de publicação (pub.dev) PENDENTE do dono — publish_to: none.
  • Default apiBaseUrl é placeholder até o domínio oficial acompanhar o nome.
  • Minimização LGPD por construção: coleta exatamente platform/token/contactRef/consent. Plain-text por construção: não renderiza conteúdo de push.
0
likes
130
points
0
downloads

Documentation

API reference

Publisher

verified publisherlighthousenorth.com.br

Weekly Downloads

SDK Flutter oficial para integrar o app do cliente à plataforma Lighthouse North de disparo push: registro de device token com evidência de consentimento (LGPD), heartbeat e opt-out fácil e gratuito. Minimização por construção: coleta apenas platform/token/contactRef/consent.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, http, meta

More

Packages that depend on lighthouse_north_client

Packages that implement lighthouse_north_client