Adicionar is fake, a bandeira que torna uma conta invisível em vez de excluída

Featurekamo-shared-library
Navios
19 de agosto de 2026 às 07:54 UTC
Autor
Kamo
Enviar
15f942a

Uma conta sintética — um artefacto de teste, um dispositivo semeado, ou um registo considerado automatizado — agora carrega `users.is fake`, e a plataforma para de reconhecê-lo. Excluir tal conta não é uma opção real: uma linha de usuário é a raiz de sete mesas de satélite, cada membro que possui e cada organização que criou, que em virar domínios próprios, recursos, modelos de email, papéis e instantâneos de armazenamento. Apagar quer dizer em cascata através de tudo isso ou deixando órfãos, e destrói as provas De tudo o que a conta fez. Um booleano é reversível e custa uma coluna. A bandeira vive no USUÁRIO, não no Membro ou na Organização, porque a propriedade é a única borda que de forma confiável atinge os dados derivados: `orgs.user id owner` e `members.user id` ambos apontam para trás aqui, então uma bandeira responde "é o originador desta linha sintético" para os três espinhos. Marcar o org em vez disso deixaria a conta capaz para entrar e criar mais. O que a bandeira alcança, e porque cada um está aqui em vez de no chamador: - `UserRepository.findSession` e a projeção de autenticação: a conta marcada resolve para zero linhas, então ele lê como inexistente em vez de como bloqueado. - `MemberRepository` / `TeamMemberRepo`: excluído de listas de membros de org e de ambas as pesquisas de diretório, ao lado do usuário do sistema que já foi filtrado lá. - Está bem. a enumeração ponto de estrangulamento nove chamada Os sites partilham. `getOrganizaçãoPor Id ` não é deliberadamente filtrado — ele volta escreve e é assim que a superfície do administrador atinge uma org marcada para desempacotá-la. - Está bem. uma org marcada pára de resolver pela máquina, por isso não pode continuar a aceitar inscrições reais sob o seu próprio subdomínio de registo. - Está filtrado na consulta, em vez de na observador, porque a varredura leva um lote fixo a cada minuto e um domínio que ninguém possui Caso contrário, manteria um desses slots para sempre, sondando o DNS de outra pessoa. Cada um destes utiliza um nome explícito para a associação esquerda. Um `o.downer.isFake` caminho dentro uma cláusula ONDE faz Hibernate adicionar uma segunda, implícita ligação INNER, que iria silenciosamente soltar cada linha cujo proprietário é nulo — e para `findByDomain` que é a resolução de login. Os localizadores acima são aditivos; os localizadores de identidade no UserRepository são deixados sem filtro de propósito. A maioria deles são suporte de carga para as verificações prévias de singularidade também quanto às pesquisas, e `USERS.EMAIL`/`ALIAS' são únicos por provedor de segurança — assim um registro duplicado-check que não poderia ver uma linha marcada iria navegar além de sua própria Guarda e morre com uma violação de restrição. Além disso, acrescenta REGISTO, REGISTO REJECTO, EMAIL VERIFIADO e ORG CREADO a AccessLogEventType. `system access logs` só realizou login, login e logout falhou, assim, uma conta que registrou, verificou, tomou uma sessão de auto-login e criou cinco organizações produziram zero linhas — nenhum evento, nenhum IP, nenhum usuário-agente — e cada detecção chaves de regra fora de eventos de login, deixando todo o funil de registro não observável. `users.is fake` já existe na produção: UserIsFakeMigration do KamoInitializer foi executado antes deste empurrão, assim nenhum serviço pode construir contra um esquema não migrado.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços