Overview
The Frontier Admin Portal provides a web-based interface for managing your Frontier deployment. It’s built with React and offers a visual way to perform administrative tasks without using the API or CLI.web/apps/admin. It’s a separate application that connects to your Frontier server via API.Features
The Admin Portal provides tools for:- Organization Management: Create, view, and manage organizations
- User Administration: View users, manage roles, and assign permissions
- Authentication Configuration: Set up OIDC providers and authentication methods
- Platform Preferences: Configure platform-wide settings
- Domain Verification: Manage and verify organization domains
- Audit Logs: Monitor system activity and user actions
- Webhook Management: Configure and monitor webhook endpoints
- Billing Overview: View billing accounts and subscriptions (if enabled)
Prerequisites
Before setting up the Admin Portal:- ✅ Frontier server is running and accessible
- ✅ Node.js 18+ and npm installed
- ✅ You have a user account with admin privileges
Installation and Setup
Create environment configuration
.env file with your Frontier server URLs:- Local Development
- Production
- Docker Compose
Install dependencies
- React 18+
- Connect-Web for gRPC communication
- UI component libraries
Start the development server
vite.config.ts if needed.First-Time Login
Navigate to the login page
Choose your authentication method
- OIDC Provider
- Magic Link
- Development Mode
- Click Sign in with Google (or your provider)
- Complete the authentication flow
- You’ll be redirected back to the portal
Portal Navigation
The Admin Portal is organized into several main sections:Dashboard
The dashboard provides an overview of your Frontier deployment:- System Health: Server status and version information
- User Statistics: Total users, active sessions, recent sign-ups
- Organization Stats: Total organizations and projects
- Recent Activity: Latest audit log entries
Organizations Tab
Manage all organizations in your system:View Organizations
View Organizations
- Lists all organizations with metadata
- Search and filter by name, status, or creation date
- See member counts and project counts
- View organization state (enabled/disabled)
Create Organization
Create Organization
- Click Create Organization
- Fill in required fields:
- Name: Unique identifier (slug)
- Title: Display name
- Metadata: Additional key-value pairs
- Click Create
Manage Organization Members
Manage Organization Members
- Click on an organization
- Go to Members tab
- You can:
- View all members and their roles
- Add new members by email
- Assign roles to members
- Remove members
Configure Projects
Configure Projects
- Select an organization
- Go to Projects tab
- Create, edit, or delete projects
- Manage project-level permissions
Manage Groups
Manage Groups
- Select an organization
- Go to Groups tab
- Create groups for team organization
- Add users to groups
- Assign roles to groups
Users Tab
Administer user accounts:View All Users
View All Users
- See all registered users
- Filter by email, status, or registration date
- View authentication methods used
- See last login timestamps
User Details
User Details
- Profile information and metadata
- Organization memberships
- Assigned roles across organizations
- Authentication methods linked
- Recent activity
Manage User Roles
Manage User Roles
- Select a user
- Go to Roles section
- Choose an organization context
- Assign or remove roles
- Changes take effect immediately
Create Service Users
Create Service Users
- Go to Service Users tab
- Click Create Service User
- Provide:
- Title/description
- Associated organization (optional)
- Save the generated credentials securely
Authentication Tab
Configure authentication methods:OIDC Provider Configuration
OIDC Provider Configuration
- Google OIDC
- GitHub OAuth
- Azure AD / Microsoft Entra ID
- Custom OIDC providers
- Client ID
- Client Secret
- Issuer URL
- Callback URL configuration
Email Authentication
Email Authentication
- Magic link settings
- OTP (One-Time Password) settings
- Email templates
- Validity periods
Domain Verification
Domain Verification
- Navigate to organization domains
- Add a domain (e.g.,
acme.com) - Verify ownership via DNS TXT record or file upload
- Enable auto-join for verified domains
- Configure default roles for auto-joined users
Preferences Tab
Set platform-wide preferences:- Organization Preferences
- User Preferences
- Email Templates
- disable_orgs_on_create: New orgs require admin approval
- disable_orgs_listing: Hide org list from non-admins
- invite_with_roles: Allow role assignment during invitation
Audit Logs Tab
Monitor all system activity:View Audit Logs
View Audit Logs
- User actions (create, update, delete)
- Permission checks
- Organization changes
- Authentication events
- Timestamp
- Actor (who performed the action)
- Action type
- Target resource
- Additional metadata
Filter and Search
Filter and Search
- Date range
- Actor (user)
- Action type
- Organization
- Resource type
Export Logs
Export Logs
- Apply filters as needed
- Click Export
- Choose format (CSV, JSON)
- Download the file
Webhooks Tab
Manage webhook endpoints:List Webhooks
List Webhooks
- Endpoint URL
- Subscribed events
- State (enabled/disabled)
- Last delivery status
Create Webhook
Create Webhook
- Click Create Webhook
- Configure:
- URL: Your webhook endpoint
- Description: What this webhook is for
- Events: Which events to send
- Headers: Custom headers (e.g., Authorization)
- Save and receive the signing secret
- Use the secret to verify webhook signatures
Test Webhook
Test Webhook
- Select a webhook
- Click Test
- Choose an event type
- Send a test event
- View the response
Monitor Deliveries
Monitor Deliveries
- View recent deliveries
- See success/failure status
- Inspect request/response
- Retry failed deliveries
Billing Tab (Optional)
If billing is enabled:- View billing accounts
- Check subscription status
- Monitor usage and credits
- View invoices
- Manage payment methods
Common Administrative Tasks
Creating an Organization with Teams
Add members
- Open the organization
- Go to Members tab
- Click Invite Member
- Enter email addresses
- Assign initial roles
Create teams (groups)
- Go to Groups tab
- Create groups like:
engineering-teamdesign-teamproduct-team
Configuring Domain-Based Auto-Join
Verify the domain
- Add TXT record to your DNS:
- Wait for DNS propagation
- Click Verify
- Download verification file
- Upload to
https://acme.com/.well-known/frontier-verification.txt - Click Verify
@acme.com email addresses automatically join the organization on first login.
Setting Up Role-Based Access Control
Production Deployment
Building for Production
dist/ directory.
Deployment Options
- Nginx
- Docker
- Static Hosting
Security Considerations
Troubleshooting
Cannot connect to Frontier server
Cannot connect to Frontier server
- Verify Frontier server is running:
curl http://localhost:8000/v1beta1/ping - Check
FRONTIER_API_URLin.envmatches server address - Ensure CORS is configured in Frontier config:
- Check firewall rules allow connections
Logged in but seeing 'Access Denied'
Logged in but seeing 'Access Denied'
- Add user to admin list in Frontier config:
- Restart Frontier server
- Log out and log back in to the portal
Portal UI shows outdated data
Portal UI shows outdated data
- Hard refresh the page (Ctrl/Cmd + Shift + R)
- Clear browser cache
- Check browser console for errors
- Verify API responses in Network tab
Build fails with module errors
Build fails with module errors
- Delete
node_modulesand reinstall: - Ensure Node.js version is 18+
- Check for TypeScript errors:
npm run type-check
Customization
The Admin Portal can be customized:Branding
Editsrc/config/branding.ts:
Adding Custom Pages
- Create component in
src/pages/ - Add route in
src/App.tsx - Add navigation item if needed