Isolamento de projeto
Um projeto é um produto dentro do seu workspace: um site, uma loja, um app. Seu conteúdo, seus usuários, seus arquivos, suas chaves de API, seus segredos e seus domínios de login são só dele, e nada é compartilhado entre dois projetos.
Uma chave, um projeto
Uma chave de API é criada dentro de um projeto e serve apenas esse projeto. O banco de dados não armazena uma chave pública ou secreta sem um. Quando uma requisição chega, o projeto é lido do registro da própria chave, nunca de um cabeçalho, e uma requisição que nomeia um projeto diferente do da sua chave é recusada.
Um domínio de API personalizado não muda isso. A chave continua selecionando o projeto, e uma chave apresentada em um domínio que pertence a outro projeto é rejeitada.
Membros da equipe limitados a um projeto
Um papel concedido em um projeto vale apenas para as linhas desse projeto. Um cliente com dois sites recebe uma concessão em cada, e nada do que ele tem em um alcança o outro. A mesma pessoa pode ser administrador de um projeto e não ter nenhum acesso ao seguinte.
As regras de linha
Toda tabela com escopo de projeto carrega o id do projeto ao lado do id do workspace, e sua política exige que os dois correspondam à sessão do chamador. Para conteúdo, usuários e arquivos, a política vai além e decide quais linhas o chamador pode ver. Para configuração, como hooks, agendamentos e domínios, o banco de dados garante a contenção, e a permissão para alterá-los é verificada quando a requisição chega.
Staging e produção
O Fóir não tem modo de teste nem um segundo tipo de chave. Um ambiente de staging é um segundo projeto, com seus próprios dados e suas próprias chaves, e um único arquivo de configuração pode declarar os dois e mantê-los em sincronia.
Leia os detalhes
O guia de autenticação explica cada tipo de chave, o que ela pode ter e como uma requisição é vinculada ao seu projeto.