At a glance
Before the workshop
FFE and Experio SMEs:- Read Graph Access Control end to end. The setup order and the traps on that page are what you will follow after the workshop.
- List every entity type in the graph, not only the ones you expect to restrict. Include
Documentand any other labels the pipeline writes. A label with no baseline row is treated as private, so you need the full list. - For each candidate private type, check that a relationship connects it to a person, directly or through something the person already reaches. Open Model & Define > Ontology and write the relationship names down exactly.
- Prepare 3–5 test users in Administer > User Profile Management, one per level you expect to test (see the persona table below). Each test user must exist as a person in the graph with real work relationships.
- The data owner brings the rule in plain words: “Only Legal and the people on the engagement may see a contract.”
- The super user brings the list of pilot users, their roles, and who they report to.
- IT confirms whether any rule comes from a contract or regulation. Those rules need the sponsor’s sign-off.
Agenda
Running the workshop
1. Classify every entity type
Walk the entity type list one row at a time. Ask:- “If any employee could see every record of this type, would anyone object?” If no, mark it public read.
- “Who is allowed to see it, in your words?” Write the answer down verbatim. It becomes the grant rule.
- “Is there anything attached to it that is just as sensitive?” Obligations inside a contract, for example. Those types must be private too, or the detail leaks through them.
2. Decide how a person reaches a private record
Access in Experio starts from work. A grant rule names a relationship that attaches a person to the graph, such asWORKS_ON_PROJECT. From what the person holds, propagation rules extend access one step at a time: “if you hold this, you may also read that, over this relationship”. Roll-up axes describe containment, where holding a parent gives you what is filed under it.
Ask the room:
- “How does a person earn access? By being staffed on the work? By being in a department?”
- “If you can see the project, should you see the contract that governs it? All contracts with that client, or only this one?”
- “If you can see a contract, should you also see its amendments and obligations?”
- “Is there anyone who needs access but is never staffed on the work (Legal, Finance, leadership)? How do we connect them?”
3. Decide on the management roll-up
Ask: “Should a manager see what their direct and indirect reports can see?” If yes, the policy uses the reporting relationship as a management axis. This is optional. It widens access for everyone with reports, so the sponsor should agree.4. Agree the test personas
Pick at least three real pilot users at different levels. One account cannot tell a working policy from a broken one. For each persona, write down which golden questions they will ask and what you expect them to see.5. Agree the rollout
Access control has three modes, set in Administer > System Settings (GRAPH_AUTHORIZATION_MODE):
Agree a date for shadow, a date for enforce, and who signs off the switch.
Worked example: Northbridge Consulting
Helen Park (Contracts Counsel) states the rule: “Contracts are confidential. Legal and the people on the engagement may see them. Everyone can see clients, projects and people.” Priya Shah (COO) confirms that managers should see what their teams see. Classification
How people reach contracts (read each row as: hold the left, and you may also read the right)
- Grant rule (team):
WORKS_ON_PROJECT. A consultant holds the projects they are staffed on. - Legal: Helen’s team is never staffed on projects. The room agrees to add one relationship to the ontology, Employee COUNSEL_FOR → Client, loaded from a small
legal_coverage.csvthat Helen maintains. A second team grant rule onCOUNSEL_FORgives Legal the clients they cover, and the last row above gives them those clients’ contracts. - Management roll-up:
REPORTS_TO(stored report → manager), entered as a roll-up axis with directionupand attached to no baseline.
Entering it in Experio
Policy rows are database rows entered in the staff admin, not configuration that ships with a release. Nothing is seeded. Only a staff administrator can edit them. Follow the order in Setting up a new deployment exactly:1
Roll-up axes
In Staff admin > Graph Authorization > Roll-up axes, add one row per containment relationship, then the management axis if you agreed one. Direction is mechanical:
down follows the arrow as stored, up walks it in reverse. Northbridge adds only REPORTS_TO, direction up.2
Baselines
In Baselines (OWD), add a row for every label in the graph,
private or public_read. A missing row means private.3
Attach containment axes
Open each baseline that should inherit down a hierarchy and set its roll-up axis. Leave the management axis unattached.
4
Grant rules and propagation rules
Add team grant rules for the work relationships, then the propagation rules from your worksheet. Leave grantee principal, grantee selector, source principal and record filter empty.
5
Check the policy
In Administer > Access Control, read the Scoping policy tab. Then use Preview as user for each test persona, and open Diagnostics for graph reachability and unreachable records.
6
Shadow, then enforce
In Administer > System Settings, set
GRAPH_AUTHORIZATION_MODE to shadow. Run the persona tests with pilot users. After sign-off, switch to enforce. The screen shows a confirmation before enforce takes effect.What users will notice
- Fewer citations. Citations are filtered by the user’s access. On a broad question (“list all our contracts”), a restricted user can get a correctly scoped answer with no citation chips, because the sample the citations are drawn from is capped before filtering. A narrower question, naming a client or project, brings citations back. Tell pilot users this before enforce. See Citations, and why a scoped answer can have none.
- Different answers to the same question. This is intended. Record the persona on every golden-question score after enforce.
- Records nobody can reach. Diagnostics counts them. Fix them upstream with a data mapping or an enrichment rule that adds the missing relationship, not by widening the policy.
Common pitfalls
Exit criteria
- Every entity type in the graph is classified private or public read, and the data owner has signed the list
- Every private type has at least one written path from a person (grant rule plus propagation)
- People who need access without being staffed have an agreed relationship, with an owner for its data
- Management roll-up decision recorded
- At least three test personas with expected results per golden question
- Policy rows entered in the staff admin in the documented order
- Preview as user matches the expected results for every persona; Diagnostics reviewed
- Shadow mode run with pilot users; sponsor sign-off recorded in the decision log
- Enforce date agreed, and pilot users told about fewer citations on broad questions