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.