Delegated authority
Enable cross-functional collaboration by granting teams authority to manage flags in projects they do not own. This strategy empowers support, security, and operations teams to coordinate releases without bottlenecking engineering teams.
Overview
Delegated authority uses LaunchDarkly’s custom roles and approval workflows to grant specific teams permission to manage subsets of flags across multiple projects. This enables cross-functional coordination while maintaining security and governance.
When to use delegated authority
Use delegated authority when:
- Cross-functional teams need to coordinate releases
- Customer success or support teams manage early access programs
- Database administrators control schema migration flags
- Security engineers manage security features
- Teams need to modify flags in projects they do not own
How delegated authority works
Each coordination strategy has two parts:
Platform
What teams do in LaunchDarkly:
Members are delegated authority to manage a subset of flags or segments inside other teams’ projects through:
- Custom roles with scoped permissions
- Approval workflows for change review
- API access for automation
Delegated authority can be combined with prerequisite flags.
Application
What developers implement: Applications evaluate flags as usual. No additional code is required.
Delegated authority scope
Delegated authority works across boundaries:
| Architecture | Supported |
|---|---|
| Within a single project | Yes |
| Across multiple projects | Yes |
| Outside of projects | No |
Both teams must have access to LaunchDarkly.
Use cases
Customer success early access programs
Empower customer success teams to manage early access enrollments without engineering involvement.
Example scenario:
Customer success team manages beta access to new analytics dashboard.
Setup:
- Create flag: Release: Analytics Dashboard
- Create custom role: Customer Success - Early Access
- Grant role permission to modify targeting rules for flags tagged with early-access
- Tag Release: Analytics Dashboard with early-access
- Assign role to customer success team members
Result:
Customer success can add customers to early access beta programs by modifying targeting rules. Engineering maintains control over flag creation and removal.
Database administrators schema migrations
Enable database administrators to signal migration completion across multiple services.
Example scenario:
Database team manages schema migration flags across multiple microservice projects.
Setup:
- Create flags in each project: DB: User Table Migration Complete
- Create custom role: DBA - Schema Migrations
- Grant role permission to manage flags tagged with schema-migration
- Assign role to database administrators
Result:
Database administrators can signal when migrations are complete. Engineering teams evaluate these flags to enable new code that depends on schema changes.
Security engineers rapid response
Allow security team to quickly enable security mitigations across multiple projects.
Example scenario:
Security team needs ability to enable rate limiting or security features in response to incidents.
Setup:
- Create flags in each project: Security: Enhanced Rate Limiting
- Create custom role: Security - Incident Response
- Grant role permission to manage flags tagged with security
- Configure approval workflow with security team as reviewers
- Assign role to security engineers
Result:
Security engineers can request activation of security features during incidents. Approvals ensure changes are reviewed while enabling rapid response.
Frontend team segment management
Grant frontend teams authority to manage browser support segments across backend services.
Example scenario:
Frontend team maintains list of supported browsers across multiple services.
Setup:
- Create segment: Supported Browsers in each relevant project
- Create custom role: Frontend - Browser Support
- Grant role permission to modify segments tagged with browser-support
- Assign role to frontend team members
Result:
Frontend team can update supported browser list once. Backend services use the segment for targeting decisions.
Implementation steps
Step 1: Identify delegated permissions
Determine what permissions to delegate:
- Which flags or segments can be modified
- Which environments can be accessed
- Whether changes require approval
- Which projects are in scope
Step 2: Create custom role
Create a custom role with scoped permissions:
- Navigate to Account settings → Roles
- Click Create role
- Provide a descriptive name
- Configure permissions using policies
Example policy for early access management:
[
{
"effect": "allow",
"actions": ["updateOn", "updateFallthrough", "updateTargets"],
"resources": ["proj/*:env/production:flag/*;early-access"]
}
]
This policy allows:
- Updating targeting rules
- Only in production environment
- Only for flags tagged with early-access
- Across all projects
Step 3: Configure approval workflows
Require approvals for delegated changes in production:
- Navigate to environment settings
- Enable Approvals
- Configure approval requirements:
- Minimum number of reviewers
- Required reviewers
- Service tokens excluded from approvals
- Save configuration
Step 4: Assign role to team
Grant the custom role to appropriate team members:
- Navigate to Account settings → Team
- Select team member
- Click Add role
- Select the custom role
- Save changes
Step 5: Document delegation
Create documentation for delegated teams:
- Which flags they can modify
- How to request changes
- Approval process and timeline
- Escalation procedures
- Examples of appropriate changes
Example configuration
Scenario: Customer support troubleshooting
Custom role: Support - Customer Overrides
Policy:
[
{
"effect": "allow",
"actions": ["updateTargets", "updateOn"],
"resources": ["proj/support-enabled:env/production:flag/*"]
}
]
Tagged flags:
- Enable Advanced Logging
- Enable Debug Mode
- Enable Experimental Features
Workflow:
- Support receives customer issue requiring advanced diagnostics
- Support creates approval request to enable advanced logging for specific customer
- Engineering reviews and approves request
- Support enables logging for customer
- After troubleshooting, support disables logging
Best practices
Use tag-based permissions
Grant permissions based on flag tags rather than specific flag names. This allows new flags to inherit permissions automatically:
{
"resources": ["proj/*:env/production:flag/*;customer-success"]
}
Require approvals in production
Always require approvals for delegated changes in production environments. This provides an audit trail and ensures changes are reviewed.
Limit environment access
Grant delegated access only to necessary environments:
{
"resources": ["proj/*:env/production:flag/*"]
}
Avoid granting access to development or test environments unless specifically needed.
Document flag ownership
Maintain clear documentation of flag ownership:
- Primary owner responsible for flag lifecycle
- Delegated teams authorized to modify targeting
- Change approval process
- Escalation contacts
Use flag descriptions
Document delegation in flag descriptions:
Flag: Enable Advanced Logging
Owner: Platform Engineering
Delegated to: Customer Support for troubleshooting
Requires approval: Yes
Approval reviewers: @platform-oncall
Monitor delegated changes
Track changes made through delegated authority:
- Review approval requests regularly
- Monitor flag evaluation metrics
- Audit delegated access quarterly
- Revoke access when no longer needed
Troubleshooting
Team member cannot modify flags
Symptom: Team member with delegated role cannot modify flags they should have access to.
Possible causes:
- Flags not tagged correctly
- Role policy scope too restrictive
- Approval workflow blocking direct changes
- Insufficient base permissions
Solution:
- Verify flags have the required tags
- Review role policy to ensure it matches flag resources
- Check if approval workflow requires request instead of direct modification
- Verify team member has base permissions to access the project
Approval requests not reaching reviewers
Symptom: Approval requests are created but reviewers do not receive notifications.
Possible causes:
- Reviewers not configured in approval workflow
- Notification settings disabled
- Role does not require approvals
- Approval workflow not enabled
Solution:
- Verify approval workflow configuration includes required reviewers
- Check reviewer notification settings in account preferences
- Review role policy for approval requirements
- Confirm approvals are enabled in the environment
Excessive approval requests
Symptom: Delegated team creates many approval requests that engineering teams struggle to review.
Possible causes:
- Delegated permissions too restrictive
- Approval workflow too strict
- Poor communication about appropriate changes
- Missing self-service capabilities
Solution:
- Review if delegated permissions should allow direct changes for low-risk modifications
- Adjust approval requirements such as reducing required reviewers
- Provide training and documentation on appropriate use
- Consider expanding delegated permissions for routine changes
Combining with other strategies
Delegated authority works well with other coordination strategies:
Delegated authority with prerequisite flags
Scenario: Product marketing team controls release timing for coordinated product launches.
Setup:
- Engineering creates prerequisite flags for feature components
- Engineering creates keystone flag with product-marketing tag
- Custom role grants product marketing team permission to modify keystone flag
- Product marketing controls launch timing by enabling keystone flag
Result:
Engineering maintains control over component flags and technical implementation. Product marketing controls the coordinated release without engineering involvement.
Delegated authority with request metadata
Scenario: API consumers can request custom targeting rules for their client versions.
Setup:
- API service evaluates flags using request metadata
- Custom role grants API consumers permission to create targeting rules
- Approval workflow requires API team review
- Consumers create approval requests for custom targeting
Result:
API consumers can request accommodations for their specific client versions. API team reviews and approves requests without custom code changes.
Related documentation
To learn more about roles and permissions:
To learn about project architecture: