Pular para o conteúdo principal

Stack Tecnológico e Dependências

Pilar: 01 — Arquitetura, Stack e Segurança
Status: 🟢 Implementado
Última Revisão Técnica: 2026-08-03
Módulos Conectados: gatein-server, gatein-app, gatein-web


1. Visão Geral da Stack por Camada

O ecossistema Gatein é construído sobre tecnologias consolidadas de mercado, priorizando performance assíncrona, desacoplamento e suporte a múltiplos dispositivos.

graph LR
subgraph "Mobile App (gatein-app)"
RN[React Native Bare]
ZUS_M[Zustand Store]
MBX[Mapbox GL]
NOT[Notifee + FCM]
end

subgraph "Web App (gatein-web)"
RCT[React 18 + Vite]
ZUS_W[Zustand Store]
FBA_W[Firebase Auth Web]
end

subgraph "Server Backend (gatein-server)"
FAP[FastAPI + Uvicorn]
SQL[SQLAlchemy ORM]
APS[APScheduler]
FBA_S[Firebase Admin SDK]
end

subgraph "Infraestrutura & Persistência"
PG[(PostgreSQL 15+)]
RDS[(Redis 7+)]
FBS[Firebase Cloud Services]
end

RN --> FAP
RCT --> FAP
FAP --> PG
FAP --> RDS
FAP --> FBS

2. Especificação do Backend (gatein-server)

ComponenteTecnologia / LibraryVersãoPropósito no Sistema
Runtime & LiguagemPython3.11.xAmbiente de execução com suporte nativo a asyncio de alta performance.
Framework WebFastAPI0.104.xFramework ASGI rápido para construção de APIs REST e documentação Swagger nativa.
Servidor ASGIUvicorn0.24.xServidor de aplicação de produção assíncrono.
ORM / Database AccessSQLAlchemy2.0.xMapeador objeto-relacional declarativo com suporte a queries assíncronas.
Gerenciador de MigraçõesAlembic1.12.xControle de versionamento do schema do banco PostgreSQL.
Banco RelacionalPostgreSQL15.xBanco de dados primário multi-tenant com suporte a colunas JSONB.
Cache & Pub/SubRedis7.xArmazenamento temporário de OTPs, gerenciamento de sessões Socket.IO e JobStore.
Scheduler AssíncronoAPScheduler3.10.xAgendador de jobs de fundo, lembretes de agendamento e limpezas LGPD.
Comunicação WebSocketspython-socketio5.10.xServidor WebSocket Socket.IO para comunicação em tempo real com hardware de pátio.
Provedor Push / Authfirebase-admin6.2.xSDK de validação de tokens Firebase e despacho de notificações FCM em massa.
Ofuscação de IDsSqids0.4.xAlgoritmo de geração de hashes alfanuméricos curtos para IDs numéricos e UUIDs.
Criptografia & HashPasslib / Bcrypt1.7.xCriptografia segura de senhas de usuários e hashes de API Keys.

3. Especificação do App Mobile (gatein-app)

ComponenteTecnologia / LibraryVersãoPropósito no Sistema
Framework MobileReact Native (Bare Workflow)0.72.xDesenvolvimento nativo cruzado (Android & iOS) de alta performance.
LinguagemJavaScript (JSX) / TypeScriptES2022Linguagem de desenvolvimento dos componentes e telas.
Gerenciador de EstadoZustand4.4.xGerenciamento de estado global leve e previsível sem boilerplate.
NavegaçãoReact Navigationv6Roteamento nativo de telas (Stack & Tab Navigators).
Mapas e Geofence VisualMapbox GL (@rnmapbox/maps)10.xRenderização vectorial de mapas, marcadores de pátio e visualização de geofences.
Notificações NativasNotifee7.8.xExibição avançada de notificações no tray do sistema operacional.
Messaging Client@react-native-firebase/messaging18.xListener de notificações push FCM em foreground, background e quit states.
HTTP ClientAxios1.6.xCliente HTTP com interceptors para injeção automática de token Bearer.
Armazenamento Seguroreact-native-encrypted-storage4.0.xArmazenamento de tokens JWT no Keychain (iOS) e Keystore (Android).
Controle de Tela/Brilhoexpo-brightness / expo-keep-awake11.xMantém a tela acesa e eleva o brilho a 100% durante a exibição do QR Code do Ticket.

4. Especificação do Web App (gatein-web)

ComponenteTecnologia / LibraryVersãoPropósito no Sistema
Framework FrontendReact18.2.xBiblioteca de construção de interfaces declarativas em componentes.
Build Tool / BundlerVite5.xFerramenta de build ultra-rápida e ambiente de desenvolvimento HMR.
RoteamentoReact Router DOMv6.20Gerenciamento de rotas e rotas protegidas por permissões (RBAC).
Gerenciador de EstadoZustand4.4.xStore central com persistência de dados do usuário autenticado.
Autenticação ClientFirebase Web SDK (firebase/auth)10.xConexão direta com o Firebase Auth para login por e-mail e senha.
Editor de Layouts / JSONMonaco Editor / JSON Tree0.44.xEditor visual e de código com validação sintática para schemas de layout.

5. Matriz de Compatibilidade e Requisitos de Sistema

gantt
title Compatibilidade de Runtime e Plataformas
dateFormat YYYY-MM-DD
section Backend
Python 3.11+ :active, p1, 2026-01-01, 2028-12-31
PostgreSQL 15+ :active, p2, 2026-01-01, 2028-12-31
Redis 7+ :active, p3, 2026-01-01, 2028-12-31
section Mobile
Android 8.0+ (API 26+) :active, m1, 2026-01-01, 2028-12-31
iOS 14.0+ :active, m2, 2026-01-01, 2028-12-31
section Tooling
Node.js 18 LTS :active, t1, 2026-01-01, 2028-12-31

6. Regras de Segurança e Política de Credenciais

RN-STACK-001: Isolamento do Arquivo serviceAccountKey.json

O arquivo de credenciais privadas do Firebase Admin (serviceAccountKey.json) contendo a chave privada do projeto é de uso exclusivo do servidor (gatein-server). É estritamente proibido incluir ou empacotar este arquivo em builds do aplicativo mobile (gatein-app) ou web app (gatein-web).

RN-STACK-002: HTTPS/TLS Obrigatório em Produção

Em ambiente de produção (ENVIRONMENT == 'production'), todas as conexões entre o aplicativo mobile/web e o servidor FastAPI exigem obrigatoriamente transporte seguro via TLS 1.3 (HTTPS). Conexões em texto claro via http:// são recusadas pelo reverse proxy NGINX.