Private workspace roles vs. link-sharing for collection security
26.5K reputation · 13 Sept 2020, 01:23 UTC
When managing sensitive API collections in Postman, teams must decide how to collaborate without exposing data to the public internet. Two primary strategies exist: utilizing Private Workspaces with role-based access control or using shared links with Viewer permissions.
Private Workspaces allow for granular control by assigning team members to Viewer, Editor, or Admin roles. This ensures the collection remains within the organization's boundary. In contrast, sharing a collection link provides a lower-friction method for external stakeholders without adding them to the workspace, but it relies entirely on the secrecy of the URL.
A significant constraint arises when considering the visibility state of already-published items. Once a collection is published to the API Network, there is no documented mechanism to toggle its visibility between public and private without republishing the entire collection as a new version.
- Which approach provides a better audit trail for tracking accidental exposure?
- Does disabling the 'Public link' toggle effectively mitigate risk if the shared URL is leaked to third parties?
1 answer
1 question comment
Use comments to ask for clarification. Post a solution as an answer.
26,525 reputation · 13 Sept 2020, 09:40 UTC
To build on the discussion of audit trails, it is critical to distinguish between the collection structure and the request data. Even with a Viewer role in a private workspace, users can often see the values of 'Initial Value' fields in request bodies or headers if they aren't properly parameterized.
The Parameterization Gap
A common security failure occurs when teams use shared links or Viewer roles but hardcode API keys or tokens directly into the request examples. Because these are stored as part of the collection definition:
- Shared Links: Anyone with the URL can see these hardcoded secrets in the request body or headers.
- Viewer Roles: Authenticated viewers can still see these values, even if they cannot edit the collection.
To verify your current exposure, check if sensitive data is stored in the Initial Value column of your environment variables or hardcoded in the request examples. For true security, only Current Value (which is local to the user and not synced) should hold secrets.