Isolation des organisations

Si le produit que vous construisez sur Fóir a ses propres clients, chacun d'eux est une organisation dans votre projet. Leurs données sont séparées par le même mécanisme que celui qui sépare les espaces de travail et les projets.

Estampillée et fixée par la base de données

Aucun appel du SDK ne prend d'argument d'organisation. L'organisation vient de l'identifiant, et quand une ligne est écrite, un trigger de base de données l'estampille à partir du claim propre à l'appelant. Un second trigger empêche un appelant situé dans une organisation de déplacer une ligne vers une autre.

Les lectures sont filtrées de la même manière. Un appelant voit les lignes partagées dans le projet, celles de sa propre organisation et celles des organisations en dessous.

Les données dérivées sont couvertes aussi

Les politiques au niveau de l'organisation s'appliquent aux enregistrements, aux fichiers, aux utilisateurs, aux notes, aux notifications et aux événements, ainsi qu'aux données qui en sont dérivées : valeurs de champs indexées, clés de recherche, relations, géométrie, embeddings et octrois d'accès. Un lecteur qui ne peut pas voir un enregistrement mais peut voir ses valeurs indexées ou son embedding n'a pas été tenu à l'écart, et c'est pourquoi ces tables sont incluses. La recherche s'exécute selon les politiques propres à l'appelant : un résultat ne revient donc jamais pour un enregistrement que l'appelant n'aurait pas pu lire.

Identifiants situés dans une organisation

Une clé peut être confinée à une organisation à sa création, et cela ne peut pas être modifié ensuite. Une telle clé lit sa propre organisation, celles qui sont en dessous et le niveau partagé, et n'écrit que dans la sienne. Une clé de projet peut nommer une organisation par requête, et une organisation qui n'est pas une organisation active de ce projet est refusée.

Ce que lit un identifiant sans organisation

Un identifiant qui n'est situé dans aucune organisation lit les lignes partagées dans le projet et rien de ce qui appartient à une organisation. Lire à travers toutes les organisations à la fois est une permission distincte, en lecture seule, qu'une clé publique ne peut pas détenir.

Le cache

Les réponses en cache sont stockées par organisation en plus de l'être par projet : les réponses de deux organisations ne partagent donc jamais une entrée, pour une clé confinée à une organisation ou qui en nomme une.

Lire le détail

Le guide des organisations montre la politique générée et passe en revue chaque façon dont une requête peut se situer dans une organisation.