Multitenancy
Como workspaces e ambientes ficam isolados no PostgreSQL, no OpenFGA e no authorization server.
Um cliente tem um workspace, e um workspace tem ambientes, por exemplo produção e homologação. Tudo o que participa de uma decisão pertence a um workspace e a um ambiente: identity connections, agentes, MCP servers, fontes, permissões e relações. Uma chamada de um ambiente nunca enxerga dados de outro.
O isolamento acontece em três camadas, e cada uma não depende das outras.
PostgreSQL. As tabelas de negócio usam Row-Level Security. Cada transação define o workspace e o ambiente, e o banco só devolve as linhas deles. O backend roda com um papel restrito, e a aplicação se recusa a iniciar se esse papel puder contornar o RLS. Um erro de consulta no código não vaza dados de outro cliente, porque quem filtra é o banco.
OpenFGA. Cada ambiente tem um store próprio, num banco dedicado ao OpenFGA. As relações de um ambiente não existem para outro, e os identificadores de objeto não precisam de prefixo de cliente.
Authorization server. Cada ambiente tem o seu issuer, as suas chaves de assinatura e o seu JWKS. Um token emitido para homologação não passa na validação de produção, porque a assinatura não confere.
A URL de uma chamada MCP diz qual workspace, ambiente e server são o destino. Ela seleciona o escopo, mas não concede acesso: o token precisa ter sido emitido pelo issuer daquele ambiente.