Arten und Aktionen¶
Diese Seite ist zum Nachschlagen: wie eine Regel aussieht, welche Arten von Dingen eine Regel nennen kann und was jede Aktion auf jeder Art bedeutet. Was Regeln und Rollen sind, steht unter Rollen und Zugriff.
Eine Regel¶
{"id": "own-department", "effect": "permit", "kind": "membership",
"actions": ["see", "write"],
"match": {"labels": {"office": "utrecht"}},
"when": [{"atom": "label_among", "label": "department", "attribute": "department"}]}
| Teil | Bedeutung |
|---|---|
effect |
permit erlaubt, forbid verbietet |
kind |
die Art von Ding, um die es in der Regel geht (OS, KI-Funktionen) |
actions |
see, use, write, delete; weglassen ist jede Aktion, die die Art kennt |
match.names |
Muster, von denen eines auf den Namen des Dings passen muss: *, ? und [a-z], Groß- und Kleinschreibung beachtet; weglassen ist jeder Name |
match.labels |
Labels, die das Ding tragen muss, jedes mit diesem Wert unter seinen Werten; höchstens 16 |
when |
Bedingungen an die Person, die alle zutreffen müssen; höchstens 16 |
id |
optional: ein eigener Name für die Regel, Kleinbuchstaben, Ziffern und -, mit einem Buchstaben beginnend, eindeutig im Dokument; eine Ablehnung nennt die Regel mit dieser ID |
Eine Bedingung in when ist eine von dreien:
| Bedingung | Trifft zu, wenn |
|---|---|
{"atom": "label_is_subject", "label": "subject"} |
die Person selbst unter den Werten dieses Labels auf dem Ding steht: „das gehört mir“ |
{"atom": "label_among", "label": "department", "attribute": "department"} |
mindestens ein Wert des Labels auf dem Ding auch ein Wert des Attributs der Person ist |
{"atom": "attribute_has", "attribute": "role", "value": "org-admin"} |
das Attribut der Person diesen Wert hat; liest nichts vom Ding |
Die Attribute, die eine Bedingung lesen kann, sind role (der Name einer eingebauten Rolle oder die ID rol_... einer eigenen Rolle), group (die ID grp_... einer Gruppe) und jedes Attribut, das die Organisation oder eine Organisation darüber festgelegt hat. Eine Bedingung auf ein anderes Attribut lehnt OS ab.
Wie OS entscheidet¶
- Nichts ist erlaubt ohne ein passendes
permit; ein passendesforbidlehnt immer ab. Die Reihenfolge spielt keine Rolle. - Eine Regel passt, wenn ihr ganzes
matchfür das Ding und ihr ganzeswhenfür die Person zutrifft. Es gibt kein „oder“ und kein „nicht“: Zwei mögliche Werte sind zwei Regeln. - Labels und Attribute sind Mengen von Werten. Ein Ding ohne das Label passt auf keinen Test dieses Labels.
- Keine Aktion schließt eine andere ein. OS fragt zuerst
see; was die Person nicht sehen darf, existiert für sie nicht (404). - Etwas anlegen ist ein
write, entschieden anhand der Labels in der Anfrage. Beim Ändern von Labels wird anhand der alten und der neuen Labels entschieden.
Grenzen und Einschränkungen¶
| Wo | Grenze |
|---|---|
| Regeldokument | höchstens 500 Regeln und 2.000 Namensmuster zusammen |
| eigene Rolle | höchstens 200 Regeln, jede höchstens 15 Bedingungen |
| eine Regel | höchstens 200 Namensmuster, 16 Label-Tests, 16 Bedingungen |
| Organisation | höchstens 100 eigene Rollen und 16 Attribute; alles, was die Organisation und die Organisationen darüber zusammen geben, höchstens 500 Regeln in den KI-Funktionen; die Organisation und jede Organisation darunter zusammen höchstens 32 Attribute und Labels, die Regeln lesen (409 darüber) |
Außerdem lehnt OS ab:
- ein
forbidüberorganisation,membership,invitation,group,role,ruleoderattribute: Für die Verwaltung schreiben Sie nur, was erlaubt ist; - eine Regel über
placementaußerhalb der obersten Organisation; - ein
attribute_hasmit einem Wert außerhalb der festen Liste des Attributs, auch wenn eine Organisation darüber es festlegte; - eine Bedingung auf ein Attribut, das niemand festgelegt hat;
- eine Regel über eine Art von OS mit einer Aktion, die die Art nicht kennt: Jede Art nimmt nur die Aktionen, die in ihrer Zeile stehen, sodass zum Beispiel
useaufgroupodermembershipnicht möglich ist; - eine Regel über die KI-Funktionen mit einem Teil, den die Art nicht nimmt (unten);
- in einer eigenen Rolle: eine Regel über
router,egress_host,artifact_download,share_linkodermemory_write.
Jede dieser Ablehnungen ist ein 422 beim Schreiben; es ändert sich nichts.
Eine Regel, die erlaubt, was nicht im Dienst der Organisation ist, lehnt OS mit 403 ab (This is not part of your organisation's service.): in einer eigenen Rolle, im Regeldokument und wenn Sie eine eigene Rolle oder eine Gruppe mit einer solchen Rolle vergeben. Eine eingebaute Rolle vergeben Sie immer; der Dienst macht sie nur kleiner.
Im Dienst¶
Ein Plan oder eine Ausnahme nennt Arten mit ihren Aktionen, wie eine Regel, aber ohne match und when. Diese Arten sind in jedem Dienst und in keinem Plan: organisation, membership, invitation, group, role, rule, attribute, audit_event, service, webhook, event, export und notification_channel, und außerdem placement und service_plan, die nur Artific verwaltet. Einen Plan oder eine Ausnahme, die eine dieser Arten nennt, lehnt OS mit 422 ab. Jede andere Art ist nur im Dienst, wenn ein Plan oder eine Ausnahme sie gibt, ebenso wie die Arten der Anmeldung Ihres Unternehmens, domain und sign_in.
Ein Bestandteil nennt nur Aktionen, die die Art kennt: bei den Arten von OS die in ihrer Zeile, bei denen der KI-Funktionen die in ihrer Tabelle. So nimmt thread kein use. Die Arten ohne Aktionen (router, egress_host, artifact_download, share_link, memory_write) sind ganz im Dienst oder nicht: Ein Bestandteil dazu nennt keine actions. Sonst lehnt OS den Plan oder die Ausnahme mit 422 ab.
Die Arten von OS¶
| Art | Das Ding | see |
use |
write |
delete |
|---|---|---|---|---|---|
organisation |
die Organisation, ihre Einstellungen und eine Organisation darunter | sie sehen, die Organisationen darunter sehen | — | ihre Einstellungen ändern; eine Organisation darunter anlegen | sie löschen |
membership |
ein Mitglied | Mitglieder sehen | — | einladen, deaktivieren, reaktivieren, Attribute geben | entfernen |
invitation |
eine offene Einladung | sehen | — | erneut senden | zurückziehen |
group |
eine Gruppe | sehen | — | anlegen, umbenennen, Mitglieder hinzufügen und entfernen, Rollen und Werte geben | löschen |
role |
eine eingebaute oder eigene Rolle | sehen | einem Mitglied oder einer Gruppe geben oder zurücknehmen | eine eigene Rolle anlegen oder ändern | eine eigene Rolle löschen |
rule |
das Regeldokument | lesen | — | ersetzen | — |
attribute |
ein Attribut | sehen | seine Werte anderen geben | festlegen oder ändern | löschen |
audit_event |
eine Zeile des Prüfprotokolls | das Prüfprotokoll lesen | — | — | — |
placement |
wo die Daten einer Organisation liegen | — | — | einstellen | — |
domain |
eine nachgewiesene E-Mail-Domain | sehen | — | hinzufügen und nachweisen | aufgeben |
sign_in |
die Anmeldung Ihres Unternehmens | sehen | — | hinzufügen und verknüpfen | trennen |
service |
der Dienst der Organisation: ihre Pläne, Ausnahmen, Testzeiträume und das Enddatum einer Demo | lesen | — | Pläne und Ausnahmen vergeben und entfernen, das Enddatum einer Demo setzen; entschieden in der Organisation darüber | — |
service_plan |
ein Plan von Artific | sehen | — | anlegen, ändern | löschen |
webhook |
ein Webhook der Organisation und seine Zustellungen | sehen, nie das Geheimnis | — | registrieren, ändern, das Geheimnis ersetzen, einschalten, testen, erneut zustellen | entfernen |
event |
die Ereignisse der Organisation | den Feed lesen und eine Zustellung empfangen | — | — | — |
export |
ein Export der Organisation oder eines Mitglieds | die Exporte der Organisation sehen | sie herunterladen | einen anfordern | — |
notification_channel |
ein Slack-Kanal, den die Organisation verbunden hat | sehen, nie die Adresse | — | verbinden, ändern, testen | trennen |
direct_chat |
der Schalter der Chats, die an eine Kollegin übergeben wurden; die eingebaute Rolle consultant hat ihn |
den Schalter sehen und einen Chat darauf lesen | einen Chat übernehmen, antworten, freigeben, zurückgeben | — | eine wartende Anfrage schließen |
improvement |
die Verbesserungsvorschläge der Organisation, ihre Einstellungen und die Analysen | die Einstellungen, die Analysen und jeden Vorschlag lesen | — | die Einstellungen ändern, eine Analyse starten, einen Vorschlag annehmen, verwerfen oder wieder öffnen | — |
Eine Art nimmt nur die Aktionen, die in ihrer Zeile stehen: service nur see und write, und organisation, membership, invitation, group, domain und sign_in kein use. Eine Regel, einen Plan oder eine Ausnahme, die eine andere Aktion nennt, lehnt OS mit 422 ab. Eine Regel ohne actions gilt für die Aktionen, die die Art kennt, und allowed_actions nennt nie eine andere.
placement und service_plan entscheidet OS nur für den, der aus der obersten Organisation handelt. Ein write auf service entscheidet OS in der Organisation darüber, für den, der dort org-admin mit Reichweite descendants hat (wie).
Was match bei einem Ding von OS liest:
| Art | match.labels liest |
match.names liest |
|---|---|---|
membership |
die Tatsachen des Mitglieds: role, group, jedes Attribut und subject, das Mitglied selbst |
— |
group, role |
die Labels darauf (höchstens 32); jede eingebaute Rolle trägt builtin: true |
den Namen |
organisation |
ihre Labels, die die Organisation darüber setzt | den Namen |
attribute |
— | den Namen |
Die Arten der KI-Funktionen¶
Diese Arten betreffen, was Mitglieder in den KI-Funktionen tun. Sie stehen in CoreAccessKind.
| Art | Worüber eine Regel entscheidet | Aktionen |
|---|---|---|
model |
welche Modelle ein Gespräch nutzt | see, use |
tool |
welche Tools das Modell bekommt und aufrufen darf | see, use, write, delete |
prompt, skill, agent, schedule, workflow |
welche Prompts, Skills, Agents, Zeitpläne und Workflows jemand erreicht | see, use, write, delete |
knowledge_collection, knowledge_index, knowledge_graph, knowledge_table_set |
welche Wissenssammlungen, Indizes, Wissensgraphen und Tabellensätze jemand erreicht | see, use, write, delete |
file, datastore |
welche Dateien und Datastores jemand per Namen erreicht | see, use, write, delete |
thread |
welche Gespräche jemand erreicht | see, write, delete |
memory_record |
welches Gedächtnis jemand erreicht | see, write, delete |
knowledge_source |
welche Wissensquellen eine Suche findet | see, write, delete |
stored_file |
welche gespeicherten Dateien und Uploads jemand erreicht | see, write, delete |
datastore_record |
welche Zeilen eines Datastores jemand erreicht | see, write, delete |
router |
welche Modell-Router genutzt werden | keine |
egress_host |
welche externen Adressen erreichbar sind | keine |
artifact_download |
ob Dateien, die ein Tool erstellt hat, heruntergeladen werden dürfen | keine |
share_link |
ob gespeicherte Dateien und Seiten über einen Link geteilt werden dürfen | keine |
memory_write |
ob die KI-Funktionen Gedächtnis schreiben dürfen | keine |
Eine Art ohne Aktionen kennt keine actions: Die Regel betrifft die Art als Ganzes.
Nicht jede Art nimmt jeden Teil einer Regel. Eine Regel mit einem Teil, den die Art nicht nimmt, oder mit einer Aktion, die sie nicht kennt, lehnt OS mit 422 ab, wenn Sie sie schreiben:
- Zeilen (
thread,memory_record,knowledge_source,stored_file,datastore_record) haben keinen Namen, also keinmatch.names. Das Labelsubjectist, wer die Zeile angelegt hat; ein leeressubject("") ist eine gemeinsame Zeile. Bei den KI-Funktionen lesen Sie das Labelsubjectnur auf Zeilen. fileunddatastoretragen keine Labels, also keinmatch.labels, und als Bedingung nurattribute_has.- Für die ganze Organisation (
router,egress_host,artifact_download,share_link,memory_write): keine Bedingung an die Person (when), und deshalb nur im Regeldokument, nie in einer Rolle (wie). Sie nehmen keine Labels;egress_hostnimmtmatch.namesfür die Adressen. Modell-Router und Downloads erreichen standardmäßig jedes Mitglied; Gedächtnis schreiben und Teilen über einen Link niemanden, bis das Regeldokument sie erlaubt.