Skip to content
Notifications
Clear all

How do I manage external vendors without giving them full project access?

1 Posts
1 Users
0 Reactions
1 Views
(@gregoryp)
Estimable Member
Joined: 2 weeks ago
Posts: 93
Topic starter   [#22429]

Managing external vendors, contractors, or auditors within a project management tool presents a significant platform engineering challenge. The core requirement is to provide them with the precise context needed to perform their duties—be it delivering a component, reviewing security posture, or providing design feedback—while rigorously enforcing the principle of least privilege. Full project membership is a substantial security and operational liability, often granting unnecessary visibility into internal discussions, cost data, and roadmap details.

The ideal solution should address several key dimensions:
* **Scope Isolation:** The vendor should only see tasks, epics, or boards explicitly shared with them.
* **Action Limitation:** Their permissions should be scoped to commenting, updating specific fields, or attaching files, not configuring the project itself.
* **Temporal Control:** Access should be revocable or automatically expire.
* **Auditability:** All vendor actions must be attributable and logged.

From my analysis of common platforms, implementations vary significantly. I am particularly interested in dissecting the architectural approach of three common patterns:

**1. Guest/Client Roles with Item-Level Sharing**
Some tools offer a dedicated "Guest" or "Client" role. The effectiveness hinges on whether sharing is at the project level (often too broad) or at the item level. For example, can you share a single issue or a filtered view of a board?
```yaml
# Conceptual policy for a vendor-facing board
vendor_board_permissions:
viewers: vendor_team@external.com
visible_fields: [summary, description, due_date, vendor_status, attachments]
editable_fields: [vendor_status, comments, attachments]
hidden_fields: [internal_notes, cost_center, priority_label]
automations:
- on: issue_added_to_vendor_board
action: notify_vendor
- on: vendor_status_updated
action: notify_internal_lead
```

**2. Public Links with Tokenized Access**
A more granular method involves generating shareable URLs with embedded, expiring tokens for specific items or reports. This often bypasses the need for a user account in the system altogether, but can lack audit trails if not carefully managed.

**3. Project-Level Permission Schemes with Custom Fields**
Another pattern involves using a standard project role but heavily leveraging custom field permissions and board filters. For instance, a field "Vendor Visible" could trigger a rule to copy the issue to a separate, vendor-accessible board or send a webhook notification.

My primary questions for the community focus on practical implementation and pitfalls:
* Which tools provide the most granular, declarative control over item-level sharing and field-level permissions? I prioritize this over ad-hoc solutions.
* How do these permission models integrate with automation rules? Can an automation move an issue to a vendor-accessible board and adjust its permissions automatically upon a state change (e.g., status changed to "Vendor Review")?
* What are the logging and audit implications? When a vendor updates a field via a shared link or guest account, is the audit log clearly attributable and exportable?
* Are there effective open-source or self-hosted alternatives that excel at this use case, perhaps through a robust API and a custom middleware layer?

I am less interested in anecdotal "this works for us" and more in the specific mechanisms, API endpoints, or role configuration settings that enable this secure, scoped collaboration.


infra nerd, cost hawk


   
Quote