4.2 KiB
OpenPanel Admin CLI
An interactive CLI tool to help manage and lookup OpenPanel organizations, projects, and clients.
Setup
First, install dependencies:
cd admin
pnpm install
Usage
Run the CLI from the admin directory:
pnpm start
Or use the convenient shell script from anywhere:
./admin/cli
Features
The CLI provides 4 focused lookup commands for easier navigation:
🏢 Lookup by Organization
Search and view detailed information about an organization.
- Fuzzy search across all organizations by name or ID
- Shows full organization details with all projects, clients, and members
📊 Lookup by Project
Search for a specific project and view its organization context.
- Fuzzy search across all projects by name or ID
- Highlights the selected project in the organization view
- Displays:
org → project
🔑 Lookup by Client ID
Search for a specific client and view its full context.
- Fuzzy search across all clients by name or ID
- Highlights the selected client and its project
- Displays:
org → project → client
📧 Lookup by Email
Search for a member by email address.
- Fuzzy search across all member emails
- Shows which organization(s) the member belongs to
- Displays member role (👑 owner, ⭐ admin, 👤 member)
All lookups display:
- Organization information (ID, name, subscription status, timezone, event usage)
- Organization members and their roles
- All projects with their settings (domain, CORS, event counts)
- All clients for each project (ID, name, type, credentials)
- Deletion warnings if scheduled
🗑️ Clear Cache
Clear cache for an organization and all its projects.
- Fuzzy search to find the organization
- Shows organization details and all projects
- Confirms before clearing cache
- Provides organization ID and all project IDs for cache clearing logic
Use when:
- You need to invalidate cache after data changes
- Troubleshooting caching issues
- After manual database updates
Note: The cache clearing logic needs to be implemented. The command provides the organization and project data structure for you to add your cache clearing calls.
🔴 Delete Organization
Permanently delete an organization and all its data.
- Fuzzy search to find the organization
- Shows detailed preview of what will be deleted (projects, members, events)
- Requires 3 confirmations:
- Initial confirmation
- Type organization name to confirm
- Final warning confirmation
- Deletes from both PostgreSQL and ClickHouse
Use when:
- Removing organizations that are no longer needed
- Cleaning up test/demo organizations
- Handling deletion requests
⚠️ WARNING: This action is PERMANENT and cannot be undone!
What gets deleted:
- Organization record
- All projects and their settings
- All clients and credentials
- All events and analytics data (from ClickHouse)
- All member associations
- All dashboards and reports
🔴 Delete User
Permanently delete a user account and remove them from all organizations.
- Fuzzy search by email or name
- Shows which organizations the user belongs to
- Shows if user created any organizations (won't delete those orgs)
- Requires 3 confirmations:
- Initial confirmation
- Type user email to confirm
- Final warning confirmation
Use when:
- Removing user accounts at user request
- Cleaning up inactive accounts
- Handling GDPR/data deletion requests
⚠️ WARNING: This action is PERMANENT and cannot be undone!
What gets deleted:
- User account
- All auth sessions and tokens
- All memberships (removed from all orgs)
- All personal data
What is NOT deleted:
- Organizations created by the user (only the creator reference is removed)
Environment Variables
Make sure you have the proper environment variables set up:
DATABASE_URL- PostgreSQL connection stringDATABASE_URL_REPLICA(optional) - Read replica connection string
Development
The CLI uses:
- jiti - Direct TypeScript execution without build step
- inquirer - Interactive prompts
- inquirer-autocomplete-prompt - Fuzzy search functionality
- chalk - Colored terminal output
- @openpanel/db - Direct Prisma database access