Skip to content

bertmoons-collab/classification-plugin

Repository files navigation

Pexip Classification Plugin

A Pexip plugin that allows meeting hosts to dynamically change the security classification level of meetings, with automatic visual feedback through theme integration.

Features

  • Dynamic Classification Control: Change meeting classification levels during active meetings
  • Host-Only Access: Only meeting hosts/chairs can change classification levels
  • Theme Integration: Automatic banner color and text changes based on classification level
  • Audit Logging: Comprehensive logging of all classification changes for compliance
  • Auto-Downgrade: Automatic classification adjustment when non-secure participants join

Theme Requirements

⚠️ IMPORTANT: This plugin requires specific theme configuration to function properly.

Your Pexip theme must include the following classification configuration in themeconfig.json:

{
  "classification": {
    "levels": {
      "5": { 
        "text": "Secure", 
        "color": "0xFFFFFF", 
        "bgcolor": "0xFF0000" 
      },
      "4": { 
        "text": "Confidential", 
        "color": "0x000000", 
        "bgcolor": "0xFFA500" 
      }
    },
    "default": 5
  }
}

Theme Configuration Details

  • Level 5 (Secure): White text on red background (0xFF0000)
  • Level 4 (Confidential): Black text on orange background (0xFFA500)
  • Default Level: Set to 5 (Secure) for new meetings
  • Colors: Must be in hexadecimal format (0xRRGGBB)

What Happens When Classification Changes

  1. Banner Updates: The meeting banner automatically changes color and text
  2. Visual Feedback: Participants see immediate visual indication of security level
  3. Logging: All changes are logged to Pexip's system for audit trails
  4. Toast Notifications: Users receive confirmation of classification changes

Installation

  1. Build the plugin:

    npm install
    npm run build
  2. Deploy the built files to your Pexip branding's plugin directory:

    branding/plugins/classification-plugin/
    
  3. Ensure your theme includes the required classification configuration

  4. Restart Pexip services to load the new plugin

Usage

For Meeting Hosts

  1. Access the Plugin: Click the shield icon in the toolbar (hosts only)
  2. Select Classification: Choose between:
    • Level 5: Secure (Red banner)
    • Level 4: Confidential (Orange banner)
  3. Apply Changes: Click "Apply" to change the meeting classification

Automatic Features

  • Auto-Downgrade: When a participant without "secure" in their name joins, classification automatically drops to Level 4 (Confidential)
  • Status Updates: The plugin button tooltip shows current classification level
  • Real-time Logging: All actions are logged with timestamps and user information

Technical Details

Plugin Communication Methods

The plugin attempts to change classification using multiple methods in order of preference:

  1. Direct Pexip API (if available): plugin.conference.setClassification()
  2. Application Messages: plugin.conference.sendApplicationMessage() with type: 'pexip.classification'
  3. Fallback Messages: plugin.conference.sendMessage() with structured payload

Logging and Audit Trail

All classification changes generate comprehensive logs:

  • Request Logs: When classification change is requested
  • Success Logs: When classification is successfully changed
  • Fallback Logs: When alternative methods are used
  • Failure Logs: When all methods fail

Log entries include:

  • Timestamp (ISO format)
  • Requested classification level
  • Level name and color
  • Source (plugin identifier)
  • Success/failure status
  • Error details (if applicable)

Browser Console Logging

The plugin provides detailed console logging for debugging:

  • Plugin initialization steps
  • API availability checks
  • Classification change attempts
  • Success/failure results
  • Fallback method usage

Troubleshooting

Plugin Shows Message But No Visual Changes

  1. Check Theme Configuration: Ensure your themeconfig.json includes the classification section
  2. Verify Pexip Version: Ensure your Pexip version supports plugin themes
  3. Check Browser Console: Look for error messages or fallback method usage
  4. Review Pexip Logs: Check for plugin-related errors in Pexip system logs

Classification Changes Not Persisting

  1. Host Permissions: Ensure you have host/chair role in the meeting
  2. Plugin Registration: Check that the plugin loaded successfully
  3. Theme Integration: Verify theme supports dynamic classification changes
  4. Pexip Configuration: Ensure plugins are enabled in your Pexip deployment

Performance Issues

  1. Plugin Loading: The plugin waits for Pexip to fully initialize
  2. API Timeouts: Built-in timeouts prevent indefinite waiting
  3. Error Handling: Graceful fallbacks prevent plugin crashes
  4. Resource Usage: Minimal memory and CPU footprint

Development

Building

npm install
npm run build
npm run test

Testing

The plugin includes comprehensive tests:

  • Plugin registration
  • Button creation
  • Classification changes
  • Error handling
  • Fallback methods

Customization

To add new classification levels:

  1. Update the theme configuration
  2. Modify the plugin form options
  3. Update the classification logic
  4. Test with your specific Pexip branding

Security Considerations

  • Host-Only Access: Classification changes restricted to meeting hosts
  • Audit Logging: All changes logged with timestamps and user information
  • Input Validation: Classification levels validated before processing
  • Error Handling: Secure error messages without information disclosure

Support

For issues related to:

  • Plugin Functionality: Check browser console and Pexip logs
  • Theme Integration: Verify theme configuration matches requirements
  • Pexip Compatibility: Ensure Pexip version supports required features
  • Performance: Monitor plugin initialization and API response times

License

This plugin is provided as-is for Pexip deployments. Ensure compliance with your organization's security policies and Pexip licensing requirements.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published