TEST-PP-001 / SOURCE CONTROLLED
Power Pages record-isolation test pack
Use before accepting an authenticated external portal that displays customer, applicant, member or supplier records.
Plain-language access rule
Document who may read, create and change which record, through which relationship, during which lifecycle state. Include revocation, delegation, staff override and internal-only data. Convert the rule into explicit Dataverse relationships before configuring table permissions.
Synthetic personas
- Organisation A representative.
- Organisation B representative.
- Representative for A and B.
- Expired representative.
- Unaffiliated authenticated contact.
- Anonymous user.
- Internal assessor and audited override operator.
Access paths
| PATH | NEGATIVE ASSERTION |
|---|---|
| List | No unrelated identifiers or counts |
| Direct URL | Unrelated record denied |
| Basic/advanced form | No unauthorised read or update |
| Portal Web API | Server-side permission enforced |
| Documents/notes | Child access cannot escape parent boundary |
Empty-result diagnostic
- Contact mapping.
- Web-role assignment.
- Permission association and scope.
- Relationship schema name and record linkage.
- Child permissions and append rights.
- Supported configuration-cache refresh.
Never enable Global read in production as a rendering test.
Release gate
Every allowed journey passes; every prohibited cross-organisation read fails across every path; expired representation is enforced; internal notes remain internal; and another operator can repeat the evidence. Rerun after changes to schema, relationships, web roles or table permissions.