Jae Wilson @DataCrew
Domo

Domo + Row Level PDP (API Requests) and Columnar PDP Beta Sneak Peek

June 11, 2024

Hook

If you've ever assumed Domo's "All Rows" PDP entry was just a UI label — not a real policy object — you'd be wrong, and that misunderstanding can silently break how you manage row-level permissions programmatically.

Why It Matters

Row-level security in Domo is enforced through PDP (Personalized Data Permissions), but the API surface behind it is underexplored. Without understanding how policies map to API objects, you can't reliably automate permission management, audit who has access to what, or build tooling that interacts with the Data Control endpoints. Knowing that "All Rows" is a concrete policy object — with its own ID — changes how you write PUT requests to manage group and user access.

What You'll Learn

  • Confirm PDP is enabled on a dataset using the v1/datacollection/{datasetId} endpoint
  • Query filter groups via the datacontrol/{datasetId}/filtergroups endpoint to enumerate all active policies
  • Understand why the All Rows policy has a real policy ID and must be treated as a first-class object in API calls
  • Assign specific groups and users to a policy by constructing the correct PUT request body with groupId and userId fields
  • Get a first look at Columnar PDP beta — field-level security coming to Domo