App Flutter cloud-first com Supabase para Feed, Fórum, Dossiês, Busca, Arquivo/Console e subsistema Inkosi.
- Flutter + Dart
- Riverpod + go_router
- Supabase (Auth, Postgres, Storage, Realtime, Edge Functions, Scheduled Functions)
- Flutter SDK 3.22+
- Supabase CLI
- Node/Deno (para Edge Functions)
- Crie um projeto no Supabase.
- Em Auth > Providers habilite:
- Email/Password
- Em Google Cloud Console:
- Configure OAuth consent screen
- Crie Client ID/Secret Web para Supabase
- Crie credenciais Android e adicione SHA-1 do keystore
- Configure deep link Android:
com.demoncorp.recorrencia://login-callback/
- Crie bucket de storage:
attachments.
supabase db pushMigration principal: supabase/migrations/202602170001_init.sql.
supabase functions deploy admin_create_invite
supabase functions deploy admin_revoke_invite
supabase functions deploy admin_set_member_role
supabase functions deploy admin_set_member_status
supabase functions deploy admin_moderate_content
supabase functions deploy consume_invite_and_join
supabase functions deploy inkosi_emit_manual
supabase functions deploy presence_heartbeat
supabase functions deploy inkosi_check_presence_milestones
supabase functions deploy inkosi_random_cron
supabase functions deploy inkosi_cleanup
supabase functions deploy bootstrapDefina secrets:
supabase secrets set BOOTSTRAP_SECRET=seu_segredoCrie primeiro usuário líder no Auth e execute:
curl -X POST \
'https://<project-ref>.functions.supabase.co/bootstrap' \
-H 'Content-Type: application/json' \
-H 'x-bootstrap-secret: seu_segredo' \
-d '{"leader_user_id":"<uuid-do-user>"}'Passe variáveis:
flutter run \
--dart-define=SUPABASE_URL=https://<project-ref>.supabase.co \
--dart-define=SUPABASE_ANON_KEY=<anon-key>Habilite realtime nas tabelas:
- posts, post_comments
- forum_topics, forum_replies
- dossiers, dossier_comments
- notifications
- inkosi_signals
Todas as tabelas no migration estão com RLS habilitado e policies por guild/role. Ações sensíveis são por Edge Functions (convites, roles/status, moderação, Inkosi manual).
inkosi_random_cron:0 */6 * * *inkosi_cleanup:15 3 * * *
lib/
app/
core/
features/
data/
domain/
presentation/
supabase/
migrations/
functions/