
What You’ll Accomplish
Just-in-Time (JIT) Access Requests let you grant temporary access to production resources with automatic expiration. Instead of giving permanent access, you can:- Grant a developer 2 hours of database access for debugging
- Allow on-call engineers 8 hours of access during their shift
- Enable break-glass access for emergencies with full audit trail
- Reduce standing privileges by requiring approval for every access request
How JIT Access Requests Work
User Requests Access
User runs
hoop connect <connection> --duration 2h to request time-limited accessRequest Created
An access request is created with status PENDING and approvers are notified via Slack/Teams
Request Statuses
| Status | Description |
|---|---|
| PENDING | Waiting for approval from designated groups |
| APPROVED | Access granted, user can connect |
| REJECTED | Access denied by an approver |
| REVOKED | Access withdrawn after initial approval |
| EXECUTED | Access period completed (expired) |
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 (e.g.,
admin,dba-team) - (Optional) Slack integration for notifications
Step 1: Enable JIT Access Requests on a Connection
Select Your Connection
Find the connection you want to protect (e.g., 
prod-postgres) and click Configure
Step 2: Request JIT Access (as a user)
Use the--duration flag to request time-limited access:
30m- 30 minutes2h- 2 hours8h- 8 hours (full workday)24h- 24 hours
Step 3: Approve the Request (as an approver)
Approvers receive a notification via Slack, Teams, or email (depending on your configuration): Option A: Approve via Slack Click the Approve button directly in the Slack notification. Option B: Approve via Web App- Go to Access Requests in the sidebar
- Find the pending request
- Review the details (who, what connection, how long)
- Click Approve or Reject
Step 4: Access Granted
Once approved, the user’s terminal shows:Step 5: Automatic Expiration
When the duration ends:- The session status changes to EXECUTED
- New connection attempts require a new approval
- All activity is logged in the session audit trail
Configuration Options
Access Duration Limits
Control how long users can request access for. Configure this in Manage > Connections > [connection] > Settings:| Setting | Description |
|---|---|
| Maximum Duration | Longest access period users can request (e.g., 8h) |
| Default Duration | Duration used if user doesn’t specify --duration |
Multiple Approval Groups
Require approval from multiple teams for sensitive resources:| 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 |
Approval Group Requirements
| Setting | Description |
|---|---|
| Minimum Approvals | Number of approvals needed per group (default: 1) |
| Auto-approve for admins | Admin users bypass approval requirements |
Admin users can approve their own requests. To test the full workflow, use a non-admin account.
Common Use Cases
1. Production Database Debugging
A developer needs to investigate a production issue:2. On-Call Access
On-call engineers get temporary elevated access during their shift:3. Break-Glass Emergency Access
For urgent incidents, request immediate access with documentation:emergency-approvers group with 24/7 availability.
4. Contractor Time-Limited Access
Grant temporary access for external contractors:Integrations
JIT Access Requests work with your existing communication tools:Slack
Receive access requests and approve directly in Slack
Microsoft Teams
Get notifications and manage access requests in Teams
Setting Up Slack Notifications
- Install the Slack integration
- Configure channels for access request notifications
- Users run
/hoop subscribein Slack to receive notifications
Troubleshooting
”My request is stuck in PENDING”
Possible causes:- No active approvers - Check that the approval groups have members online
- Multiple groups required - All configured groups must approve
- Slack notifications not working - Verify the Slack integration is configured
- View the request in Access Requests > find your request > check which groups have approved
”Admin users bypass the approval”
This is expected behavior. Admin users auto-approve their own requests. To test the full workflow:- Create a non-admin test user
- Add them to a group without admin privileges
- Request access as that user
”Access still works after time limit”
Possible causes:- Active session - If a session is actively in use, it may not terminate immediately
- Request not expired - Check the request status in Access Requests > click on the session
- An admin can Revoke the access from the Access Requests page
- This immediately changes the status to REVOKED and terminates access
”I can’t see the approval notification in Slack”
Check:- The Slack app is installed correctly (setup guide)
- The connection has the
slackplugin enabled - The approver has subscribed with
/hoop subscribe - The notification channel is configured in Slack plugin settings
Best Practices
Set Reasonable Durations
Match access duration to task requirements. 2 hours for debugging, 8 hours for on-call shifts.
Use Multiple Groups for Sensitive Systems
Require both technical and security approval for production databases.
Configure Slack/Teams
Real-time notifications ensure fast approval turnaround.
Audit Regularly
Review access patterns in Sessions to identify unusual activity.

