Last updated: March 22, 2026

Overview

When you add a Viewer to your team, you can scope their access to specific projects. This is ideal for clients who should only see their own project data, or team members focused on specific accounts.

How It Works

1. Admin adds a team member with Viewer role
2. Admin assigns specific projects to the Viewer
3. Viewer can only access assigned projects
4. All features (history, changes, AI readiness) are scoped to those projects
5. Unassigned projects are invisible to the Viewer

Tier Availability

| Tier | Available |
|——|———–|
| Agency | Yes |
| Enterprise | Yes |

RBAC Roles: Role system that Viewer belongs to
Client Portal: Read-only client access using Viewer scoping
Project Management: Projects that scoping applies to

Mini-Tutorial

Step 1: Identify Viewer Candidates

Viewers are perfect for clients, junior team members, or stakeholders who should only see specific projects.

Step 2: Invite Viewer with Project Assignment

When inviting someone as a Viewer, specify which project(s) they can see.

Step 3: Viewer Sees Limited Dashboard

When the Viewer logs in, their dashboard shows only the assigned projects. Other projects are invisible.

Step 4: Adjust Scoping Later

In Team Members, click the Viewer’s name and update their project list anytime.

Step 5: Remove All Scoping (Optional)

If a Viewer’s assignment expires, either remove them entirely or re-assign to different projects.

Technical Details

Invite with Project Scoping

POST /api/v1/team/invite
{
  "email": "[email protected]",
  "role": "viewer",
  "projects": ["proj_abc123", "proj_def456"]
}

Update Viewer’s Project Assignment

PUT /api/v1/team/member/user_789/project
{
  "project_ids": ["proj_abc123"]
}

Response:

{
  "id": "user_789",
  "email": "[email protected]",
  "role": "viewer",
  "assigned_projects": [
    {
      "id": "proj_abc123",
      "name": "Client A"
    }
  ],
  "updated_at": "2025-03-22T14:35:00Z"
}

Viewer Dashboard

When a Viewer logs in, only their scoped projects appear:

{
  "projects": [
    {
      "id": "proj_abc123",
      "name": "Client A",
      "score": 82,
      "last_updated": "2025-03-22T10:00:00Z"
    }
  ],
  "total_projects_visible": 1,
  "can_access": ["validation_history", "export", "reports"]
}

Attempting to access unscoped projects returns 403 Forbidden.

Permissions Within Scoped Project

Viewer can:
– View validation history (filtered to that project)
– Export data (filtered to that project)
– View scores and trends
– Access project-level reports

Viewer cannot:
– Modify any project data
– Manage team members
– Access billing or account settings
– See other projects

References

Multi-Tenant Authorization Patterns
Attribute-Based Access Control (ABAC)
Data Isolation in SaaS Applications
ValidGraph Project Scoping API