Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Plataforma SaaS de inteligência, gestão, recuperação de receitas e compliance para entidades sindicais. Ver docs/rodadas/ para o histórico de decisões, docs/architecture/ para os ADRs, e docs/roadmap-stagings.md para o roadmap de evolução (STG-00 a STG-12). • Local: npm run dev + Supabase via Docker (supabase start) — ver Configuração abaixo. • Staging: https://gsbc-platform.vercel.app (Vercel + Supabase Cloud, projeto GBSC/zjtuvsgigymgludplghd, região eu-west-1) — provisionado na Rodada 17 (docs/rodadas/rodada-17-cloud-staging.md). Mesmo seed de demonstração do ambiente local.檢視完整 README ↗
Plataforma SaaS de inteligência, gestão, recuperação de receitas e compliance
para entidades sindicais. Ver docs/rodadas/ para o histórico de decisões,
docs/architecture/ para os ADRs, e docs/roadmap-stagings.md para o
roadmap de evolução (STG-00 a STG-12).
npm run dev + Supabase via Docker (supabase start) — ver
Configuração abaixo.GBSC/zjtuvsgigymgludplghd, região eu-west-1) — provisionado
na Rodada 17 (docs/rodadas/rodada-17-cloud-staging.md). Mesmo seed de
demonstração do ambiente local.@supabase/ssr.Ver ADR-002 para a justificativa da escolha de plataforma.
node -v).cp .env.example .env.local
Preencha .env.local com as credenciais do projeto Supabase (local ou
remoto). Ver comentários em .env.example para o significado de cada
variável — nunca commitar .env.local com chaves reais.
O schema vive em supabase/migrations/*.sql, aplicado via Supabase CLI:
npx supabase start # sobe Postgres + Auth + Storage localmente (Docker)
npx supabase db reset # reaplica migrations + supabase/seed.sql do zero
supabase/seed.sql cria dados de demonstração (1 tenant GSBC, 1 sindicato
fictício, papéis do RBAC e 2 usuários de teste — senha Demo@12345 para
ambos):
[email protected] — Super Admin GSBC (acesso cross-tenant).[email protected] — Dirigente do Sindicato
Demonstração (acesso restrito ao próprio tenant).Nunca rodar supabase db reset ou o seed contra um projeto de produção.
Quando o projeto Supabase remoto existir, regenerar os tipos TypeScript com:
npx supabase gen types typescript --project-id <id> > src/types/database.types.ts
até lá, src/types/database.types.ts é mantido manualmente em sincronia com
as migrations.
npm run dev # ambiente de desenvolvimento (Turbopack)
npm run build # build de produção
npm run start # roda o build de produção
npm run lint # ESLint
npx tsc --noEmit # checagem de tipos
src/
app/
login/ # autenticação
backoffice/ # shell autenticado (GSBC + sindicatos, Rodada 1)
components/
ui/ # primitivos shadcn/ui (Base UI)
design-system/ # componentes de produto reutilizáveis (regra 43)
backoffice/ # navegação e chrome do shell autenticado
lib/
supabase/ # client/server/proxy — único ponto de criação do cliente Supabase
auth/ # sessão e checagens de autorização (RLS é a autoridade final)
audit/ # escrita em audit_logs via função Postgres
validation/ # schemas Zod
types/
database.types.ts # tipos do banco (mantido manualmente até haver projeto Supabase)
domain.ts # códigos de papel/permissão, tipos de domínio
supabase/
migrations/ # schema versionado
seed.sql # dados de demonstração
docs/
architecture/ # ADRs
rodadas/ # relatório de cada rodada de desenvolvimento
Isolamento entre sindicatos é garantido por Row Level Security no Postgres — nunca por filtro de frontend (ver ADR-001 e ADR-003). Toda alteração de schema deve vir acompanhada de política de RLS explícita.