
What You’ll Accomplish
Action Access Requests require approval for each command before it executes. Unlike JIT Access Requests (which grant time-based access), Action requests give you command-level control:- Review the exact query before it runs
- Approve or modify commands in real-time
- Block dangerous operations even from authorized users
- Create an audit trail of every approved action
How It Works
Approver Reviews
Approver sees the exact command and can:
- Approve - Execute the command as-is
- Reject - Block the command
What the User Sees
What the Approver Sees
In Slack (or Teams):Quick Start
Prerequisites
To get the most out of this guide, you will need to:- Either create an account in our managed instance or deploy your own hoop.dev instance
- You must be your account administrator to perform the following actions
- A connection configured with an agent
- At least one user group for approvers
- (Optional) Slack or Teams integration
Step 1: Enable Action Access Requests
Step 2: Test the Workflow
As a non-admin user, run a command:Step 3: Approve the Command
As an approver: Option A: Via Slack- Find the notification in your Slack channel
- Review the command
- Click Approve
- Go to Access Requests in the sidebar
- Find the pending request
- Review the command details
- Click Approve or Reject
Step 4: Command Executes
Once approved, the user’s terminal shows the results:Configuration Options
Approval Groups
Configure which groups can approve commands:| Configuration | Behavior |
|---|---|
Single group (dba-team) | Any member of dba-team can approve |
Multiple groups (dba-team, security) | One member from each group must approve |
Groups Requiring Approval
Configure which groups need their commands approved:| Setting | Behavior |
|---|---|
| All users | Every command requires approval |
| Specific groups | Only commands from those groups need approval |
| Exempt groups | Some groups (like admin) bypass approval |
Request Timeout
Set how long to wait for approval before the request expires:| Setting | Use Case |
|---|---|
| 5 minutes | Quick ad-hoc queries |
| 30 minutes | Standard operations |
| 1 hour | Complex procedures |
Use Cases
1. Production Database Changes
All write operations on production require approval:2. Dangerous Commands
Block risky operations unless approved:3. Junior Developer Oversight
Junior team members get their commands reviewed:- Configure juniors’ group to require approval
- Senior team members’ group can approve
- Learning opportunity for juniors to see corrections
4. Compliance Requirements
Some regulations require dual approval for data access:- Configure multiple approval groups
- Both groups must approve before execution
- Full audit trail for compliance reporting
Integration Options
Slack
Receive and approve commands directly in Slack:- Set up Slack integration
- Configure notification channel
- Approvers click buttons to approve/reject
Microsoft Teams
Same workflow in Teams:- Set up Teams integration
- Configure webhook URL
- Notifications appear in your channel
Webhooks
For custom integrations:- Configure a webhook endpoint
- Receive POST requests for new access requests
- Call the API to approve/reject
Comparison: Action vs JIT
| Aspect | Action | JIT |
|---|---|---|
| Approval scope | Each command | Time window |
| User experience | Wait for each command | Request once, run freely |
| Security level | Highest | High |
| Use case | Write operations, sensitive queries | Read access, debugging sessions |
| Approver load | Higher (more requests) | Lower (one per session) |
When to Use Action
- Production write operations (UPDATE, DELETE, INSERT)
- Sensitive data access
- Compliance-required dual approval
- Training/oversight scenarios
When to Use JIT
- Debugging sessions (many queries)
- Read-only access
- On-call access
- Time-limited elevated access
Troubleshooting
Command Times Out
If the command expires before approval: Check:- Approvers received the notification
- Slack/Teams integration is working
- Request timeout is long enough
- Increase timeout in connection settings
- Verify notification channel configuration
- Add more approvers for faster response
Approver Can’t See Request
Check:- Approver is in an approval group
- Approver has subscribed to notifications (
/hoop subscribein Slack) - Notification channel is configured
Admin Users Bypass Approval
This is expected—admin users auto-approve their own requests. To test the full workflow:- Use a non-admin test account
- Or temporarily remove yourself from admin group
Request Shows “Rejected” But Shouldn’t
Check the rejection reason:- Go to Access Requests in Web App
- Find the rejected request
- Click to see who rejected and why
Best Practices
Clear Policies
Document which commands need approval and why
Fast Approvers
Have approvers available during work hours
Backup Approvers
Configure multiple approvers for coverage
Reasonable Timeouts
Set timeouts based on operational needs
For Approvers
- Review carefully - Check the exact command being run
- Verify context - Who is running it and why
- Respond quickly - Don’t leave requesters waiting
- Document rejections - Explain why if you reject