The Admin Dashboard is your control center for managing projects, apps, users, and billing.
Overview
Access the Admin Dashboard at admin.nubeauth.com
The dashboard features a contextual sidebar that adapts to your current location:
- Global View - Projects, billing, webhooks
- Project View - Apps, team, settings
- App View - Users, licenses, OAuth configuration
Projects
Creating a Project
- Navigate to Projects in the sidebar
- Click "Create Project"
- Enter project details:
- Name - Display name (e.g., "My SaaS Platform")
- Slug - URL identifier (e.g., "my-saas")
- Description - Optional description
- Click "Create"
Project Dashboard
The project dashboard shows:
- Total Users - Across all apps
- Active Licenses - Current paid subscribers
- Monthly Revenue - MRR from all apps
- App Count - Number of apps in project
Project Settings
Configure project-level settings:
- Edit Details - Update name and description
- Archive Project - Hide from active projects
- Delete Project - Permanently remove (owners only)
Apps
Creating an App
- Select a project
- Navigate to Apps
- Click "Create App"
- Configure app details:
- Name - App display name
- Slug - URL identifier
- Redirect URIs - Allowed callback URLs
- Allowed Origins - CORS whitelist
App Dashboard
View key metrics for your app:
- Total Users - Registered user count
- Active Licenses - Users with valid licenses
- MRR - Monthly recurring revenue
- Session Count - Active sessions
App Settings
Configure app-level settings:
- General - Name, slug, description
- Security - Session TTL, max concurrent sessions
- Allowed Origins - CORS configuration
- Redirect URIs - OAuth callback URLs
User Management
Viewing Users
Navigate to App → Users to see all registered users:
| Column | Description |
|---|---|
| Name | User's display name |
| Email address | |
| License | Current plan (Free, Pro, etc.) |
| Joined | Registration date |
| Last Login | Last activity timestamp |
User Actions
Click a user to:
- View Details - Full user profile
- Grant License - Assign a plan manually
- Revoke License - Remove paid access
- View Sessions - See active sessions
- Deactivate - Disable account
Searching Users
Use the search bar to find users by:
- Email address
- Name
- User ID
Licensing
Plans & Tiers
Create flexible pricing plans:
- Navigate to App → Licenses & Plans
- Click "Create Plan"
- Configure plan details:
{
"name": "Pro",
"slug": "pro",
"price_monthly": 999, // $9.99
"price_yearly": 9999, // $99.99
"trial_days": 14,
"features": [
"Unlimited storage",
"Priority support",
"Advanced analytics"
]
}Plan Types
| Type | Description |
|---|---|
| Free | No payment required, basic features |
| Trial | Limited-time access to paid features |
| Monthly | Recurring monthly subscription |
| Yearly | Annual subscription (discounted) |
| Lifetime | One-time payment, permanent access |
Managing Licenses
View and manage all licenses:
- Active - Valid paid licenses
- Expired - Past due date
- Cancelled - User cancelled subscription
- Trial - Currently in trial period
Granting Manual Licenses
For special cases (press, partners, etc.):
- Navigate to App → Licenses
- Click "Grant License"
- Select user and plan
- Set duration (optional)
- Click "Grant"
OAuth Configuration
Enabling Providers
Configure OAuth providers for your app:
- Navigate to App → OAuth Config
- Select provider (Google, GitHub)
- Enable provider
- Enter credentials:
- Client ID - From provider console
- Client Secret - From provider console
- Set Redirect URIs
- Save configuration
Provider Setup
Google OAuth
- Go to Google Cloud Console
- Create OAuth 2.0 credentials
- Add redirect URI:
https://api.nubeauth.com/v1/auth/callback/google - Copy Client ID and Secret to Nube Auth
GitHub OAuth
- Go to GitHub Developer Settings
- Create OAuth App
- Set callback URL:
https://api.nubeauth.com/v1/auth/callback/github - Copy Client ID and Secret to Nube Auth
Security Settings
Configure session security:
- Session TTL - 1-365 days
- Max Concurrent Sessions - Limit devices
- Redirect URIs - Whitelist callback URLs
- Allowed Origins - CORS domains
Payment Integration
Setting Up Payment Providers
Configure payment providers at the project level:
- Navigate to Project → Payment Providers
- Click "Add Provider"
- Select provider:
- Stripe
- LemonSqueezy
- More coming soon
- Choose environment:
- Test - For development
- Production - For live payments
- Enter credentials
- Save configuration
Stripe Setup
- Get API keys from Stripe Dashboard
- Add to Nube Auth:
- Publishable Key - Public key for frontend
- Secret Key - Private key for backend
- Webhook Secret - For webhook verification
- Configure webhook endpoint:
https://api.nubeauth.com/v1/webhooks/stripe
LemonSqueezy Setup
- Get API key from LemonSqueezy Dashboard
- Add to Nube Auth:
- API Key
- Store ID
- Webhook Secret
- Configure webhook:
https://api.nubeauth.com/v1/webhooks/lemonsqueezy
App Payment Settings
Override payment provider per app:
- Navigate to App → Payment Config
- Select payment provider (or use project default)
- Configure checkout:
- Success URL - Redirect after payment
- Cancel URL - Redirect on cancellation
- Custom Branding - Logo, colors
API Keys
Generating API Keys
Create API keys for backend integration:
- Navigate to App → API Keys
- Click "Generate API Key"
- Copy the key immediately (shown only once)
- Store securely in your backend
API Key Format:
nube_sk_live_abc123... (64 characters)Using API Keys
Include in requests to Nube Auth API:
curl -H "Authorization: Bearer nube_sk_live_abc123..." \
https://api.nubeauth.com/v1/usersKey Management
- View Current Key - Masked for security (e.g.,
nube-auth_sk_...abc) - Rotate Key - Generate new key with grace period
- Revoke Key - Immediately invalidate key
Team Management
Inviting Team Members
Add collaborators to your project:
- Navigate to Project → Team
- Click "Invite Member"
- Enter email address
- Select role:
- Owner - Full access
- Admin - Manage apps and licenses
- Member - Read-only access
- Send invitation
Managing Roles
| Role | Projects | Apps | Users | Licenses | Billing | Team |
|---|---|---|---|---|---|---|
| Owner | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Admin | 👁️ | ✅ | ✅ | ✅ | 👁️ | ❌ |
| Member | 👁️ | 👁️ | 👁️ | 👁️ | ❌ | ❌ |
Legend: ✅ Full access, 👁️ Read-only, ❌ No access
Removing Team Members
Only owners can remove team members:
- Navigate to Project → Team
- Click "Remove" next to member
- Confirm removal
Billing Dashboard
Viewing Transactions
Access global billing overview:
- Navigate to Billing (global sidebar)
- View revenue charts:
- MRR - Monthly recurring revenue
- Growth - Month-over-month growth
- Churn - Cancellation rate
Transaction History
Filter transactions by:
- Date Range - Last 7/30/90 days
- Project - Specific project
- App - Specific app
- Provider - Stripe, LemonSqueezy
- Status - Success, failed, pending
Exporting Data
Export transactions to CSV:
- Navigate to Export (global sidebar)
- Select date range
- Choose filters (project, app, provider)
- Click "Export CSV"
- Download file
Webhooks
Monitoring Webhooks
View all webhook events:
- Navigate to Webhooks (global sidebar)
- Filter by:
- Provider - Stripe, LemonSqueezy
- Event Type - payment_succeeded, subscription_cancelled, etc.
- Status - Success, failed
- Date Range
Webhook Details
Click a webhook to view:
- Request Headers - Sent by provider
- Request Body - JSON payload
- Response Status - HTTP status code
- Response Body - Your server's response
- Timestamp - When event occurred
Retrying Failed Webhooks
If a webhook fails (e.g., server downtime):
- Click "Retry" on failed webhook
- Nube Auth resends event to your endpoint
- View new response status
Refunds
Processing Refunds
Handle refund requests:
- Navigate to Refunds (global sidebar)
- View refund requests
- Click "Process Refund"
- Choose refund type:
- Full Refund - Return entire amount
- Partial Refund - Custom amount
- Update license status
- Confirm refund
Refund History
Track all processed refunds:
- Amount - Refunded amount
- Reason - Refund reason
- Date - When processed
- Status - Complete, pending, failed
Integration Guide
Quick Integration
Get your app running with Nube Auth:
- Navigate to App → Integration Guide
- Follow step-by-step instructions:
- Install SDK
- Configure credentials
- Add login button
- Handle callback
- Copy code snippets
- Test integration
Code Examples
The integration guide provides ready-to-use code:
// Initialize Nube Auth client
import { NubeAuthClient } from '@nube-auth/client';
const nubeAuth = new NubeAuthClient({
appId: 'APP0abc123...',
appToken: 'nube_sk_live_...',
});
// Start OAuth login
await nube-auth.auth.login({ provider: 'google' });Testing Your Integration
Use the built-in test tool:
- Click "Test Login Flow"
- Follow OAuth redirect
- Verify callback handling
- Check user creation
Analytics & Statistics
Project Statistics
View project-level analytics:
- Navigate to Project → Statistics
- View metrics:
- User Growth - New users over time
- License Distribution - Free vs. paid
- Revenue Trends - MRR growth
- Churn Rate - User retention
App Analytics
Per-app analytics:
- Active Users - DAU, WAU, MAU
- Session Duration - Average session length
- Feature Usage - Which features are used
- Conversion Rate - Free to paid conversion
Keyboard Shortcuts
Speed up your workflow:
| Shortcut | Action |
|---|---|
Cmd/Ctrl + K | Open command palette |
Cmd/Ctrl + / | Toggle sidebar |
Cmd/Ctrl + B | Go to billing |
Cmd/Ctrl + P | Switch project |
Theme Customization
Toggle between light and dark themes:
- Click theme icon in top header
- Select:
- Light - Default light theme
- Dark - High contrast dark theme
- System - Follow OS preference
Best Practices
Security
- Use test environment for development
- Rotate API keys regularly (every 90 days)
- Limit redirect URIs to your domains only
- Enable 2FA for admin accounts (coming soon)
Organization
- One project per product - Separate unrelated apps
- Descriptive names - Use clear project/app names
- Regular backups - Export data monthly
Team Collaboration
- Assign roles carefully - Principle of least privilege
- Document changes - Use internal notes
- Review access - Audit team members quarterly
Troubleshooting
Cannot Create Project
Issue: "Project slug already taken"
Solution: Choose a different slug (must be unique)
OAuth Not Working
Issue: "Invalid redirect URI"
Solution: Add your callback URL to allowed redirect URIs
Webhooks Failing
Issue: Webhooks showing as failed
Solution:
- Check your server is running
- Verify webhook endpoint is publicly accessible
- Check webhook secret is correct
- Review webhook logs for error details
API Key Not Working
Issue: "Invalid API key"
Solution:
- Ensure you copied the full key
- Check you're using the correct environment (test vs. production)
- Verify key hasn't been revoked
- Generate a new key if needed
Next Steps
- User Dashboard - End user features
- Integration Guide - Add Nube Auth to your app
- API Reference - Complete API documentation
