Connect your Docker Hub organization to Viio to track team members, monitor container registry activity, and optimize your Docker Hub subscriptions.
Capabilities
✅ Users | Syncs all organization members with their usernames, email addresses, roles, and account status to track who has access to your container repositories |
✅ Usage | Tracks user activity through audit logs including image pushes, pulls, authentications, and repository modifications |
Prerequisites
Docker Hub Organization - An active Docker Hub organization (personal accounts are not supported)
Admin/Owner Access - Administrative permissions to create access tokens
Access Token - Personal Access Token (PAT) or Organization Access Token (OAT)
Team or Business Plan - Required for usage tracking via audit logs (user sync works on all plans)
Setup
Important: If your organization has SSO enforced, you must use a personal access token (PAT) instead of a password.
1. Create Access Token
Option A: Personal Access Token (PAT) - Recommended
Log in to Docker Hub
Click your username → Account Settings → Security
Click New Access Token
Add description (e.g., "Viio Integration")
Set permissions: Read access (minimum) or Read/Write/Delete
Copy the token immediately (it won't be shown again)
Option B: Organization Access Token (OAT)
Navigate to Organizations → Select your organization
Go to Settings → Security → New Access Token
Configure with read permissions for members and audit logs
Copy the token
2. Gather Required Information
You'll need:
Username: Your Docker Hub username (or organization name if using OAT)
Access Token: The PAT or OAT you just created
Organization Name: Your organization name (visible in URL:
hub.docker.com/orgs/{org_name})
3. Configure the Integration in Viio
Open Viio → Integrations and choose Docker Hub → Connect
Enter your Username
Enter your Access Token
Enter your Organization Name
Click Continue, Add a Name & Save
4. Initial Sync
Viio will immediately begin syncing your Docker Hub data:
Organization members with roles and status
Activity data from audit logs (if on Team/Business plan)
The initial sync typically completes within a few minutes, depending on your organization size.
Troubleshooting & FAQ
Q: Why am I getting an "Unauthorized" error?
A: The token is incorrect, expired, or doesn't have sufficient permissions. Generate a new access token with read permissions for organization members and audit logs.
Q: I get "Organization not found" error
A: Verify your organization name is spelled correctly. Check the exact name from your Docker Hub URL: hub.docker.com/orgs/{org_name}
Q: No usage data is appearing
A: Audit logs are only available on Docker Hub Team and Business plans. If you're on a Free or Basic plan, upgrade to enable usage tracking. User sync will still work on all plans.
Q: My organization has SSO enabled. Can I still connect?
A: Yes, but you must use a Personal Access Token (PAT) instead of a password. Password authentication won't work with SSO-enforced organizations.
Q: What's the difference between PAT and OAT?
A: Personal Access Tokens (PAT) are created by individual users and use the username as the identifier. Organization Access Tokens (OAT) are created at the organization level and use the organization name as the identifier. Both work with Viio.
Q: Does Viio modify anything in Docker Hub?
A: No. Viio only reads data from Docker Hub. The integration does not create, modify, or delete users, repositories, or any other Docker Hub resources.
Q: Can I connect multiple Docker Hub organizations?
A: Yes, you can configure separate integrations for each organization you want to track.
Technical Details
Authentication: Uses /v2/auth/token endpoint to exchange credentials for a short-lived JWT token (~5 minutes). Tokens are automatically refreshed.
Credentials Format:
identifier: Username (for PAT) or organization name (for OAT)secret: Password (if SSO not enforced), PAT, or OAT
API Endpoints:
Users:
GET /v2/orgs/{orgName}/members(paginated, 100 per page)Usage:
GET /v2/auditlog(paginated, supports date range filtering)
Common Audit Log Actions: repo.push, repo.pull, auth.login, team.member.add, team.member.remove, repo.create, repo.delete
