-
Notifications
You must be signed in to change notification settings - Fork 0
Admin Advanced Features
Comprehensive guide to bulk operations, automation, system monitoring, and enhanced audit logging
- Overview
- Bulk Operations
- Automation Engine
- System Health Monitoring
- Enhanced Audit Logs
- API Reference
- Best Practices
Version 0.5.0 introduces powerful administrative capabilities designed for enterprise deployments:
- Bulk Operations: Perform actions on multiple users/channels simultaneously
- Automation Engine: Schedule and automate administrative tasks
- Real-time Monitoring: Track system health and resource usage
- Enhanced Audit Logs: Advanced search, filtering, and export capabilities
Required Roles: Owner, Admin
Location: /admin/advanced
Perform operations on multiple users, channels, or messages at once with progress tracking and error handling.
Invite multiple users via email addresses.
Features:
- Parse email lists (newline, comma, or semicolon separated)
- Email validation
- Custom welcome messages
- Role assignment
- Progress tracking
Usage:
// Navigate to: /admin/advanced?tab=bulk-users
// Select "Invite" tab
// Paste email addresses:
alice@example.com
bob@example.com, charlie@example.com
david@example.com; eve@example.com
// Select default role
// Optional: Add custom welcome message
// Click "Send Invitations"CSV Import Format:
email,role,displayName
alice@example.com,member,Alice Johnson
bob@example.com,moderator,Bob SmithTemporarily or permanently suspend user accounts.
Features:
- Suspension reason (required)
- Duration options: 7 days, 30 days, 90 days, permanent
- User notifications
- Batch processing
Usage:
- Select users from the user management table
- Navigate to "Suspend" tab
- Enter suspension reason
- Choose duration
- Confirm operation
Permanently delete user accounts.
Features:
- Confirmation required (type "DELETE")
- Option to delete associated messages
- Ownership transfer for channels
- Irreversible action warnings
Safety: Double confirmation required to prevent accidental deletions.
Assign roles to multiple users simultaneously.
Features:
- Role selection from available roles
- Optional user notifications
- Immediate permission updates
Archive multiple channels to keep them readonly.
Features:
- Optional archive reason
- Member notifications
- Preserves message history
Permanently delete multiple channels.
Features:
- Confirmation required (type "DELETE")
- Optional message archiving before deletion
- Member notifications
- Irreversible action warnings
Transfer channel ownership to another user.
Features:
- Specify new owner by ID or email
- Notifications to old and new owners
- Maintains channel settings
Change privacy settings for multiple channels.
Features:
- Make public or private
- Instant permission updates
- Member list preserved
id,username,displayName,email,role,isActive,isBanned,createdAt,messagesCount,channelsCount
user-123,alice,Alice Johnson,alice@example.com,member,true,false,2024-01-15T10:00:00Z,450,12
user-456,bob,Bob Smith,bob@example.com,moderator,true,false,2024-01-10T09:00:00Z,678,15id,name,slug,description,type,isPrivate,isArchived,createdAt,membersCount,messagesCount
ch-123,general,general,General discussion,public,false,false,2024-01-01T00:00:00Z,156,4521
ch-456,engineering,engineering,Engineering team,private,true,false,2024-01-02T00:00:00Z,24,1856Schedule and automate administrative tasks with rule-based triggers and actions.
Every automation rule has:
- Trigger: When the rule should run
- Action: What the rule should do
- Conditions (optional): Filter criteria
- Configuration: Trigger and action parameters
Run on a cron schedule.
Examples:
-
0 0 * * *- Daily at midnight -
0 0 * * 0- Weekly on Sunday at midnight -
0 2 * * *- Daily at 2 AM -
0 9 * * 1- Monday at 9 AM
-
user.created- New user account created -
user.login- User logs in -
channel.created- New channel created -
message.created- New message posted
-
channel.inactive- Channel inactive for X days -
message.old- Message older than X days -
user.inactive- User inactive for X days
-
channel.archive- Archive inactive channels -
channel.delete- Delete channels
Example Configuration:
{
trigger: 'schedule',
triggerConfig: {
schedule: { cron: '0 0 * * 0' }, // Weekly
inactivityDays: 90
},
action: 'channel.archive',
actionConfig: {
archiveChannel: {
reason: 'Archived due to 90 days of inactivity',
notifyMembers: true
}
}
}-
message.delete- Delete old messages
Example - Retention Policy:
{
trigger: 'schedule',
triggerConfig: {
schedule: { cron: '0 2 * * *' }, // Daily at 2 AM
ageDays: 365
},
action: 'message.delete',
actionConfig: {
deleteMessages: {
reason: 'Retention policy: messages older than 1 year',
archiveFirst: true
}
}
}-
user.assign_role- Auto-assign roles -
user.send_email- Send automated emails -
user.suspend- Suspend inactive accounts
Example - Welcome Email:
{
trigger: 'user.created',
action: 'user.send_email',
actionConfig: {
sendEmail: {
templateId: 'welcome',
subject: 'Welcome to the team!',
customData: { /* template variables */ }
}
}
}-
report.generate- Generate and send reports
Example - Weekly Report:
{
trigger: 'schedule',
triggerConfig: {
schedule: { cron: '0 9 * * 1' } // Monday at 9 AM
},
action: 'report.generate',
actionConfig: {
generateReport: {
reportType: 'activity',
format: 'pdf',
recipients: ['admin@example.com'],
includeCharts: true
}
}
}Pre-configured templates for common automation scenarios:
- Archive Inactive Channels - Weekly archival of channels inactive for 90 days
- Delete Old Messages - Daily deletion of messages older than 1 year
- Auto-assign Member Role - Assign "member" role to new verified users
- Welcome Email - Send welcome email to new users
- Weekly Activity Report - Send activity reports to admins
- Suspend Inactive Users - Suspend accounts inactive for 180 days
- Navigate to
/admin/advanced?tab=automation - Click "Create Rule"
- Choose from template or create custom
- Configure trigger and action
- Set conditions (optional)
- Save and activate
- Click "Edit" icon on rule row
- Modify configuration
- Save changes
- Play: Activate rule
- Pause: Temporarily disable
- Run Now: Execute immediately (manual trigger)
- Duplicate: Create copy for customization
- Delete: Permanently remove
View detailed execution logs:
- Start/completion times
- Items processed
- Success/failure counts
- Error details
Real-time monitoring of system resources and service health.
- Current usage percentage
- Core count
- Load average (1m, 5m, 15m)
- Historical trends (20-minute chart)
- Total/used/free memory
- Usage percentage
- Memory trends over time
- Total/used/free storage
- Usage percentage
- Storage status (Healthy/Warning/Critical)
Status Thresholds:
- Healthy: < 50%
- Moderate: 50-75%
- Warning: 75-90%
- Critical: > 90%
Monitor backend services:
- PostgreSQL (database)
- Hasura GraphQL (API)
- Auth Service (authentication)
- Storage (MinIO)
- Redis Cache
- MeiliSearch (search)
Metrics per Service:
- Status: Healthy/Degraded/Down
- Uptime duration
- Response time
- Last health check timestamp
PostgreSQL-specific metrics:
- Active connections
- Queries per second
- Average query time
- Bytes in/out
- Active connections
- Connection trends
- Toggle auto-refresh on/off
- Updates every 5 seconds when enabled
- Manual refresh button available
Comprehensive audit trail with advanced search, filtering, and export capabilities.
-
user.created- User account created -
user.updated- Profile updated -
user.deleted- Account deleted -
user.login- Login event -
user.logout- Logout event -
user.suspended- Account suspended -
user.role_changed- Role modified
-
channel.created- Channel created -
channel.updated- Settings updated -
channel.deleted- Channel deleted -
channel.archived- Channel archived
-
message.created- Message posted -
message.updated- Message edited -
message.deleted- Message deleted -
message.flagged- Message flagged
-
settings.updated- System settings changed -
automation.created- Automation rule created -
automation.executed- Automation run -
bulk_operation.started- Bulk operation initiated -
bulk_operation.completed- Bulk operation finished
- Info: Normal operations (blue)
- Warning: Potentially concerning events (yellow)
- Error: Failed operations (red)
- Critical: Severe issues (dark red)
Free-text search across:
- Event descriptions
- Actor names
- Event types
- Event Type: Filter by category (user, channel, message, settings, automation)
- Severity: Filter by info, warning, error, critical
- Actor: Filter by specific user
- Date Range: Today, last 7 days, last 30 days, all time
Click "View" icon to see complete event details:
- Full description
- Actor information (name, username, email)
- Target entity (if applicable)
- Technical details (IP address, user agent)
- Metadata (session ID, custom data)
- Exact timestamp
timestamp,type,severity,actor,action,description,ipAddress
2024-01-29T14:30:00Z,user.created,info,Alice Johnson,created,Created new user account,192.168.1.10[
{
"id": "event-123",
"type": "user.created",
"severity": "info",
"actor": {
"id": "user-1",
"username": "alice",
"displayName": "Alice Johnson",
"email": "alice@example.com"
},
"description": "Created new user account",
"timestamp": "2024-01-29T14:30:00Z",
"ipAddress": "192.168.1.10",
"metadata": { "sessionId": "session-456" }
}
]Configure audit log retention:
- Automatic cleanup of old logs
- Configurable retention periods
- Export before deletion option
Endpoint: POST /api/admin/bulk-operations
Request Body:
{
type: BulkOperationType,
parameters: Record<string, unknown>
}Response:
{
success: boolean,
operationId: string,
totalItems: number,
message: string,
errors?: Array<{
itemId: string,
error: string
}>
}POST /api/admin/bulk-operations
{
"type": "user.invite",
"parameters": {
"emails": ["alice@example.com", "bob@example.com"],
"roleId": "member",
"sendWelcomeEmail": true,
"customMessage": "Welcome to our team!"
}
}
Response:
{
"success": true,
"operationId": "op-123",
"totalItems": 2,
"message": "Successfully sent 2 invitations"
}POST /api/admin/bulk-operations
{
"type": "channel.archive",
"parameters": {
"channelIds": ["ch-1", "ch-2", "ch-3"],
"reason": "Inactive for 90 days",
"notifyMembers": true
}
}
Response:
{
"success": true,
"operationId": "op-456",
"totalItems": 3,
"message": "Successfully archived 3 channels"
}-
user.invite- Invite users -
user.suspend- Suspend users -
user.delete- Delete users -
user.role.assign- Assign roles -
channel.archive- Archive channels -
channel.delete- Delete channels -
channel.transfer- Transfer ownership -
channel.privacy.change- Change privacy -
message.delete- Delete messages -
message.flag- Flag messages
- Test First: Start with small batches to verify behavior
- Use Filters: Apply filters before bulk operations to ensure correct targets
- Monitor Progress: Watch the progress tracker for errors
- Export Before Delete: Always export data before permanent deletions
- Notifications: Enable notifications for transparency
- Double-Check: Review selected items before confirming destructive actions
- Start Disabled: Create rules in disabled state, test manually first
- Conservative Schedules: Don't run intensive operations too frequently
- Monitor Executions: Regularly check execution history for issues
- Use Conditions: Add conditions to prevent unintended actions
- Archive Before Delete: Always archive before deletion in automation
- Notify Stakeholders: Enable notifications for important automations
- Set Up Alerts: Configure alerts for critical thresholds
- Regular Reviews: Check system health dashboard daily
- Baseline Metrics: Understand normal resource usage patterns
- Act on Warnings: Investigate degraded services promptly
- Capacity Planning: Use trends to predict future resource needs
- Regular Exports: Export logs periodically for backup
- Retention Policies: Configure appropriate retention periods
- Security Reviews: Audit failed login attempts and security events
- Compliance: Use exports for compliance reporting
- Investigation: Leverage detailed event data for troubleshooting
Symptoms: Operation shows as "running" but no progress
Solutions:
- Check network connection
- Refresh the page
- Check browser console for errors
- Contact support if persists
Symptoms: Scheduled rule not executing
Solutions:
- Verify rule status is "active"
- Check cron expression syntax
- Review execution history for errors
- Ensure system time is correct
Symptoms: CPU/Memory/Disk usage in critical range
Solutions:
- Check recent bulk operations
- Review automation schedules
- Investigate database queries
- Scale resources if needed
Symptoms: Expected events not appearing in logs
Solutions:
- Check date range filter
- Verify severity filter settings
- Try clearing all filters
- Check retention policy
For issues or questions:
- Documentation:
/docs - Admin Dashboard:
/admin/advanced - System Health:
/admin/advanced?tab=monitoring - Audit Trail:
/admin/advanced?tab=audit
Version: 0.5.0 Last Updated: January 30, 2026 Maintainer: nself-chat Team
nself-chat v0.3.0 | GitHub | Issues | Discussions | Demo
Edit this page | MIT License | Β© 2026
(See π Security section below for 2FA, PIN Lock, and security audits.)
(Search lives in π Reference below.)
- π¬ Advanced Messaging
- π E2EE Setup
- π Search Setup
- π Call Management
- πΊ Live Streaming
- π₯οΈ Screen Sharing
- πΉ Video Calling
- ποΈ Voice Calling
- π± Mobile Optimization
- π§ͺ Testing
- π i18n
- π API Overview
- π Complete Reference
- π» API Examples
- π€ Bot API
- π Auth API
- π GraphQL Schema
- π Deployment Overview
- π³ Docker
- βΈοΈ Kubernetes
- β Helm Charts
- β Production Checklist
- π Production Validation
- π’ Multi-Tenant
- ποΈ Architecture
- π Diagrams
- ποΈ Database Schema
- π Project Structure
- π TypeScript Types
- π SPORT Reference
- π 2FA
- π¬ Messaging
- π Call Management
- π Call State Machine
- π E2EE
- πΊ Live Streaming
- π± Mobile Calls
- π PIN Lock
- π Polls
- π₯οΈ Screen Sharing
- π Search
- π Social Media
- ποΈ Voice Calling
- π Security Overview
- π‘οΈ Security Audit
- β‘ Performance
- π Best Practices
- π 2FA
- π PIN Lock
- π E2EE
- π‘οΈ E2EE Audit
v1.0.0 β’ 2026