{
  "type": "featherpanel.events.all",
  "total": 465,
  "emitted": 358,
  "defined_only": 107,
  "events": [
    {
      "name": "featherpanel:admin:allocations:retrieved",
      "method": "onAllocationsRetrieved",
      "category": "Allocations",
      "callback": "array allocations list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:allocations:allocation:retrieved",
      "method": "onAllocationRetrieved",
      "category": "Allocations",
      "callback": "int allocation id, array allocation data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:allocations:allocation:created",
      "method": "onAllocationCreated",
      "category": "Allocations",
      "callback": "array allocation data.",
      "emitted": true,
      "data_keys": [
        "allocations",
        "created_by",
        "created_count"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/AllocationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:allocations:allocation:updated",
      "method": "onAllocationUpdated",
      "category": "Allocations",
      "callback": "int allocation id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "allocation",
        "deleted_source_conflicts",
        "deleted_target_conflicts",
        "from_ip",
        "ip_alias",
        "matched_count",
        "node_id",
        "to_ip",
        "updated_by",
        "updated_count",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/AllocationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:allocations:allocation:deleted",
      "method": "onAllocationDeleted",
      "category": "Allocations",
      "callback": "int allocation id, array allocation data.",
      "emitted": true,
      "data_keys": [
        "allocation",
        "deleted_by",
        "deleted_count",
        "ids",
        "ip",
        "node_id",
        "skipped_count"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/AllocationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:allocations:error",
      "method": "onAllocationsError",
      "category": "Allocations",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:allocations:allocation:not:found",
      "method": "onAllocationNotFound",
      "category": "Allocations",
      "callback": "int allocation id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "router::Ready",
      "method": "onRouterReady",
      "category": "App",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/PluginManagerController.php"
      ]
    },
    {
      "name": "featherpanel:auth:login:success",
      "method": "onAuthLoginSuccess",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/LoginController.php",
        "backend/app/Controllers/User/Auth/RegisterController.php",
        "backend/app/Controllers/User/Auth/TwoFactorController.php"
      ]
    },
    {
      "name": "featherpanel:auth:login:failed",
      "method": "onAuthLoginFailed",
      "category": "Auth",
      "callback": "positional values from the emitted payload in key insertion order (see PluginEvents::emit).\n     * Possible keys across emitters: email, error, ip_address, provider, reason, user, username, username_or_email.",
      "emitted": true,
      "data_keys": [
        "email",
        "error",
        "ip_address",
        "provider",
        "reason",
        "user",
        "username",
        "username_or_email"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/EmailLoginController.php",
        "backend/app/Controllers/User/Auth/LdapController.php",
        "backend/app/Controllers/User/Auth/LoginController.php"
      ]
    },
    {
      "name": "featherpanel:auth:logout",
      "method": "onAuthLogout",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/Auth/AuthLogoutController.php"
      ]
    },
    {
      "name": "featherpanel:auth:register:success",
      "method": "onAuthRegisterSuccess",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/RegisterController.php"
      ]
    },
    {
      "name": "featherpanel:auth:forgot:password",
      "method": "onAuthForgotPassword",
      "category": "Auth",
      "callback": "array user info, string reset_url, string reset_token.",
      "emitted": true,
      "data_keys": [
        "ip_address",
        "reset_token",
        "reset_url",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/ForgotPasswordController.php"
      ]
    },
    {
      "name": "featherpanel:auth:reset:password:success",
      "method": "onAuthResetPasswordSuccess",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/ResetPasswordController.php"
      ]
    },
    {
      "name": "featherpanel:auth:2fa:setup",
      "method": "onAuth2FASetup",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/TwoFactorController.php"
      ]
    },
    {
      "name": "featherpanel:auth:2fa:enabled",
      "method": "onAuth2FAEnabled",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/TwoFactorController.php"
      ]
    },
    {
      "name": "featherpanel:auth:2fa:verified",
      "method": "onAuth2FAVerified",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/TwoFactorController.php"
      ]
    },
    {
      "name": "featherpanel:auth:2fa:failed",
      "method": "onAuth2FAFailed",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "ip_address",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/TwoFactorController.php"
      ]
    },
    {
      "name": "featherpanel:auth:password:changed",
      "method": "onAuthPasswordChanged",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "ip_address",
        "user",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/SessionController.php"
      ]
    },
    {
      "name": "featherpanel:auth:email:changed",
      "method": "onAuthEmailChanged",
      "category": "Auth",
      "callback": "array user info, string email.",
      "emitted": true,
      "data_keys": [
        "ip_address",
        "new_email",
        "old_email",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/SessionController.php"
      ]
    },
    {
      "name": "featherpanel:auth:account:locked",
      "method": "onAuthAccountLocked",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "already_locked",
        "attempts",
        "identifier",
        "lockout_seconds"
      ],
      "source_files": [
        "backend/app/Helpers/AccountLockoutHelper.php"
      ]
    },
    {
      "name": "featherpanel:auth:account:unlocked",
      "method": "onAuthAccountUnlocked",
      "category": "Auth",
      "callback": "array user info.",
      "emitted": true,
      "data_keys": [
        "identifier"
      ],
      "source_files": [
        "backend/app/Helpers/AccountLockoutHelper.php"
      ]
    },
    {
      "name": "featherpanel:auth:registration:failed",
      "method": "onAuthRegistrationFailed",
      "category": "Auth",
      "callback": "string email, string reason.",
      "emitted": true,
      "data_keys": [
        "abuse_confidence_score",
        "email",
        "ip_address",
        "reason",
        "username"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/RegisterController.php"
      ]
    },
    {
      "name": "featherpanel:auth:password:reset:failed",
      "method": "onAuthPasswordResetFailed",
      "category": "Auth",
      "callback": "string email, string reason.",
      "emitted": true,
      "data_keys": [
        "ip_address",
        "reason",
        "token"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/ResetPasswordController.php"
      ]
    },
    {
      "name": "featherpanel:auth:forgot:password:failed",
      "method": "onAuthForgotPasswordFailed",
      "category": "Auth",
      "callback": "string email, string reason.",
      "emitted": true,
      "data_keys": [
        "email",
        "ip_address",
        "reason"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/ForgotPasswordController.php"
      ]
    },
    {
      "name": "featherpanel:auth:email:login:code:requested",
      "method": "onAuthEmailLoginCodeRequested",
      "category": "Auth",
      "callback": "array user info, string ip_address.",
      "emitted": true,
      "data_keys": [
        "ip_address",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/EmailLoginController.php"
      ]
    },
    {
      "name": "featherpanel:admin:backup_policy:created",
      "method": "onBackupPolicyCreated",
      "category": "BackupPolicy",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "created_by",
        "policy"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/BackupSchedulesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:backup_policy:updated",
      "method": "onBackupPolicyUpdated",
      "category": "BackupPolicy",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "policy",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/BackupSchedulesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:backup_policy:deleted",
      "method": "onBackupPolicyDeleted",
      "category": "BackupPolicy",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "policy"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/BackupSchedulesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:backup_policy:run:started",
      "method": "onBackupPolicyRunStarted",
      "category": "BackupPolicy",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "manual",
        "policy",
        "triggered_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/BackupSchedulesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:backup_policy:run:completed",
      "method": "onBackupPolicyRunCompleted",
      "category": "BackupPolicy",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "manual",
        "policy",
        "result"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/BackupSchedulesController.php"
      ]
    },
    {
      "name": "featherpanel:chatbot:conversation:delete",
      "method": "onConversationDeleted",
      "category": "Chatbot",
      "callback": "string user uuid, int conversation id.",
      "emitted": true,
      "data_keys": [
        "conversation_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/ChatbotController.php",
        "backend/app/Controllers/User/VdsChatbotController.php"
      ]
    },
    {
      "name": "featherpanel:chatbot:conversation:memory:update",
      "method": "onConversationMemoryUpdated",
      "category": "Chatbot",
      "callback": "string user uuid, int conversation id, string memory.",
      "emitted": true,
      "data_keys": [
        "conversation_id",
        "memory",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/ChatbotController.php",
        "backend/app/Controllers/User/VdsChatbotController.php"
      ]
    },
    {
      "name": "featherpanel:admin:cloud:credentials:retrieved",
      "method": "onCloudCredentialsRetrieved",
      "category": "CloudManagement",
      "callback": "array credentials data.",
      "emitted": true,
      "data_keys": [
        "credentials"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/CloudManagementController.php"
      ]
    },
    {
      "name": "featherpanel:admin:cloud:panel:credentials:stored",
      "method": "onPanelCredentialsStored",
      "category": "CloudManagement",
      "callback": "array credentials data.",
      "emitted": true,
      "data_keys": [
        "credentials",
        "last_rotated_at",
        "private_key",
        "public_key",
        "stored_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/CloudManagementController.php"
      ]
    },
    {
      "name": "featherpanel:admin:cloud:cloud:credentials:stored",
      "method": "onCloudCredentialsStored",
      "category": "CloudManagement",
      "callback": "array credentials data.",
      "emitted": true,
      "data_keys": [
        "credentials",
        "last_rotated_at",
        "mythic_user_id",
        "private_key",
        "public_key",
        "source",
        "stored_by",
        "team_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/CloudManagementController.php"
      ]
    },
    {
      "name": "featherpanel:admin:cloud:credentials:rotated",
      "method": "onCloudCredentialsRotated",
      "category": "CloudManagement",
      "callback": "string credential type.",
      "emitted": true,
      "data_keys": [
        "credential_type",
        "rotated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/CloudManagementController.php"
      ]
    },
    {
      "name": "featherpanel:admin:cloud:error",
      "method": "onCloudManagementError",
      "category": "CloudManagement",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:cloud:plugin:installed",
      "method": "onPluginInstalled",
      "category": "CloudPlugins",
      "callback": "string identifier, array plugin data, string user uuid.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/CloudPluginsController.php"
      ]
    },
    {
      "name": "featherpanel:cloud:plugin:uninstalled",
      "method": "onPluginUninstalled",
      "category": "CloudPlugins",
      "callback": "string identifier, string user uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:console:command:executed",
      "method": "onCommandExecuted",
      "category": "Console",
      "callback": "string command, array execution data.",
      "emitted": true,
      "data_keys": [
        "command",
        "executed_by",
        "execution_time",
        "return_code",
        "working_directory"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ConsoleController.php"
      ]
    },
    {
      "name": "featherpanel:admin:console:system_info:retrieved",
      "method": "onSystemInfoRetrieved",
      "category": "Console",
      "callback": "array system info.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:console:error",
      "method": "onConsoleError",
      "category": "Console",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:database_management:migrations:executed",
      "method": "onMigrationsExecuted",
      "category": "DatabaseManagement",
      "callback": "array migration results.",
      "emitted": true,
      "data_keys": [
        "executed",
        "executed_by",
        "failed",
        "skipped",
        "total_time"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabaseManagmentController.php"
      ]
    },
    {
      "name": "featherpanel:admin:database_management:status:retrieved",
      "method": "onStatusRetrieved",
      "category": "DatabaseManagement",
      "callback": "array status data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:database_management:error",
      "method": "onDatabaseManagementError",
      "category": "DatabaseManagement",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:database:snapshot:created",
      "method": "onSnapshotCreated",
      "category": "DatabaseSnapshots",
      "callback": "string filename, int size, string user uuid.",
      "emitted": true,
      "data_keys": [
        "filename",
        "size",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabaseSnapshotsController.php"
      ]
    },
    {
      "name": "featherpanel:database:snapshot:restored",
      "method": "onSnapshotRestored",
      "category": "DatabaseSnapshots",
      "callback": "string filename, string user uuid.",
      "emitted": true,
      "data_keys": [
        "filename",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabaseSnapshotsController.php"
      ]
    },
    {
      "name": "featherpanel:database:snapshot:deleted",
      "method": "onSnapshotDeleted",
      "category": "DatabaseSnapshots",
      "callback": "string filename, string user uuid.",
      "emitted": true,
      "data_keys": [
        "filename",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabaseSnapshotsController.php"
      ]
    },
    {
      "name": "featherpanel:database:snapshot:downloaded",
      "method": "onSnapshotDownloaded",
      "category": "DatabaseSnapshots",
      "callback": "string filename, string user uuid.",
      "emitted": true,
      "data_keys": [
        "filename",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabaseSnapshotsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:databases:retrieved",
      "method": "onDatabasesRetrieved",
      "category": "Databases",
      "callback": "array databases list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:database:retrieved",
      "method": "onDatabaseRetrieved",
      "category": "Databases",
      "callback": "int database id, array database data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:database:created",
      "method": "onDatabaseCreated",
      "category": "Databases",
      "callback": "array database data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "database_data",
        "database_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabasesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:databases:database:updated",
      "method": "onDatabaseUpdated",
      "category": "Databases",
      "callback": "int database id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "database",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabasesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:databases:database:deleted",
      "method": "onDatabaseDeleted",
      "category": "Databases",
      "callback": "int database id, array database data.",
      "emitted": true,
      "data_keys": [
        "database",
        "deleted_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DatabasesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:databases:by:node:retrieved",
      "method": "onDatabasesByNodeRetrieved",
      "category": "Databases",
      "callback": "int node id, array databases.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:database:health:checked",
      "method": "onDatabaseHealthChecked",
      "category": "Databases",
      "callback": "int database id, array health data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:connection:tested",
      "method": "onDatabaseConnectionTested",
      "category": "Databases",
      "callback": "array connection data, array test results.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:error",
      "method": "onDatabasesError",
      "category": "Databases",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:database:not:found",
      "method": "onDatabaseNotFound",
      "category": "Databases",
      "callback": "int database id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:databases:database:connection:error",
      "method": "onDatabaseConnectionError",
      "category": "Databases",
      "callback": "int database id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:dns_hosts:host:created",
      "method": "onDnsHostCreated",
      "category": "DnsHosts",
      "callback": "array host data.",
      "emitted": true,
      "data_keys": [
        "host"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DnsHostsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:dns_hosts:host:updated",
      "method": "onDnsHostUpdated",
      "category": "DnsHosts",
      "callback": "int host id, array host data.",
      "emitted": true,
      "data_keys": [
        "host",
        "host_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DnsHostsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:dns_hosts:host:deleted",
      "method": "onDnsHostDeleted",
      "category": "DnsHosts",
      "callback": "int host id, array host data.",
      "emitted": true,
      "data_keys": [
        "host",
        "host_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/DnsHostsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:featherzerotrust:config:retrieved",
      "method": "onFeatherZeroTrustConfigRetrieved",
      "category": "FeatherZeroTrust",
      "callback": "array config data.",
      "emitted": true,
      "data_keys": [
        "config"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FeatherZeroTrustController.php"
      ]
    },
    {
      "name": "featherpanel:admin:featherzerotrust:config:updated",
      "method": "onFeatherZeroTrustConfigUpdated",
      "category": "FeatherZeroTrust",
      "callback": "array old config, array new config.",
      "emitted": true,
      "data_keys": [
        "new_config",
        "old_config",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FeatherZeroTrustController.php"
      ]
    },
    {
      "name": "featherpanel:admin:featherzerotrust:scan:started",
      "method": "onFeatherZeroTrustScanStarted",
      "category": "FeatherZeroTrust",
      "callback": "string server uuid, array scan data.",
      "emitted": true,
      "data_keys": [
        "directory",
        "max_depth",
        "server_uuid",
        "started_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FeatherZeroTrustController.php"
      ]
    },
    {
      "name": "featherpanel:admin:featherzerotrust:scan:completed",
      "method": "onFeatherZeroTrustScanCompleted",
      "category": "FeatherZeroTrust",
      "callback": "string server uuid, array scan results.",
      "emitted": true,
      "data_keys": [
        "detections_count",
        "scan_results",
        "server_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FeatherZeroTrustController.php"
      ]
    },
    {
      "name": "featherpanel:admin:featherzerotrust:logs:retrieved",
      "method": "onFeatherZeroTrustLogsRetrieved",
      "category": "FeatherZeroTrust",
      "callback": "array logs data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:featherzerotrust:error",
      "method": "onFeatherZeroTrustError",
      "category": "FeatherZeroTrust",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:featherzerotrust:scan:error",
      "method": "onFeatherZeroTrustScanError",
      "category": "FeatherZeroTrust",
      "callback": "string server uuid, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:file_manager:file:read",
      "method": "onFileRead",
      "category": "FileManager",
      "callback": "string path, array file data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:file_manager:file:saved",
      "method": "onFileSaved",
      "category": "FileManager",
      "callback": "string path, int size.",
      "emitted": true,
      "data_keys": [
        "path",
        "saved_by",
        "size"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FileManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:file_manager:file:created",
      "method": "onFileCreated",
      "category": "FileManager",
      "callback": "string path, bool is_directory.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "is_directory",
        "path"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FileManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:file_manager:file:deleted",
      "method": "onFileDeleted",
      "category": "FileManager",
      "callback": "string path, bool was_directory.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "path",
        "was_directory"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/FileManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:file_manager:directory:browsed",
      "method": "onDirectoryBrowsed",
      "category": "FileManager",
      "callback": "string path, array items.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:file_manager:error",
      "method": "onFileManagerError",
      "category": "FileManager",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:hosting_packages:package:created",
      "method": "onHostingPackageCreated",
      "category": "HostingPackages",
      "callback": "array package data.",
      "emitted": true,
      "data_keys": [
        "package"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/HostingPackagesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:hosting_packages:package:updated",
      "method": "onHostingPackageUpdated",
      "category": "HostingPackages",
      "callback": "int package id, array package data.",
      "emitted": true,
      "data_keys": [
        "package",
        "package_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/HostingPackagesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:hosting_packages:package:deleted",
      "method": "onHostingPackageDeleted",
      "category": "HostingPackages",
      "callback": "int package id, array package data.",
      "emitted": true,
      "data_keys": [
        "package",
        "package_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/HostingPackagesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:images:retrieved",
      "method": "onImagesRetrieved",
      "category": "Images",
      "callback": "array images list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:images:image:retrieved",
      "method": "onImageRetrieved",
      "category": "Images",
      "callback": "int image id, array image data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:images:image:created",
      "method": "onImageCreated",
      "category": "Images",
      "callback": "array image data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "image_data",
        "image_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ImagesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:images:image:updated",
      "method": "onImageUpdated",
      "category": "Images",
      "callback": "int image id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "image",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ImagesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:images:image:deleted",
      "method": "onImageDeleted",
      "category": "Images",
      "callback": "int image id, array image data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "image"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ImagesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:images:error",
      "method": "onImagesError",
      "category": "Images",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:images:image:not:found",
      "method": "onImageNotFound",
      "category": "Images",
      "callback": "int image id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:knowledgebase:categories:retrieved",
      "method": "onKnowledgebaseCategoriesRetrieved",
      "category": "Knowledgebase",
      "callback": "array categories, array pagination, array search.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:category:retrieved",
      "method": "onKnowledgebaseCategoryRetrieved",
      "category": "Knowledgebase",
      "callback": "array category.",
      "emitted": true,
      "data_keys": [
        "category"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:category:created",
      "method": "onKnowledgebaseCategoryCreated",
      "category": "Knowledgebase",
      "callback": "array category, array created_by.",
      "emitted": true,
      "data_keys": [
        "category",
        "created_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:category:updated",
      "method": "onKnowledgebaseCategoryUpdated",
      "category": "Knowledgebase",
      "callback": "array category, array updated_by.",
      "emitted": true,
      "data_keys": [
        "category",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:category:deleted",
      "method": "onKnowledgebaseCategoryDeleted",
      "category": "Knowledgebase",
      "callback": "array category, array deleted_by.",
      "emitted": true,
      "data_keys": [
        "category",
        "deleted_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:articles:retrieved",
      "method": "onKnowledgebaseArticlesRetrieved",
      "category": "Knowledgebase",
      "callback": "array articles, array pagination, array search.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:article:retrieved",
      "method": "onKnowledgebaseArticleRetrieved",
      "category": "Knowledgebase",
      "callback": "array article.",
      "emitted": true,
      "data_keys": [
        "article"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:article:created",
      "method": "onKnowledgebaseArticleCreated",
      "category": "Knowledgebase",
      "callback": "array article, array created_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "created_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:article:updated",
      "method": "onKnowledgebaseArticleUpdated",
      "category": "Knowledgebase",
      "callback": "array article, array updated_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:article:deleted",
      "method": "onKnowledgebaseArticleDeleted",
      "category": "Knowledgebase",
      "callback": "array article, array deleted_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "deleted_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:articles:reordered",
      "method": "onKnowledgebaseArticlesReordered",
      "category": "Knowledgebase",
      "callback": "array articles, array reordered_by.",
      "emitted": true,
      "data_keys": [
        "articles",
        "reordered_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:icon:uploaded",
      "method": "onKnowledgebaseIconUploaded",
      "category": "Knowledgebase",
      "callback": "string filename, string url, array uploaded_by.",
      "emitted": true,
      "data_keys": [
        "filename",
        "uploaded_by",
        "url"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:attachment:uploaded",
      "method": "onKnowledgebaseAttachmentUploaded",
      "category": "Knowledgebase",
      "callback": "array article, array attachment, array uploaded_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "attachment",
        "uploaded_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:attachments:retrieved",
      "method": "onKnowledgebaseAttachmentsRetrieved",
      "category": "Knowledgebase",
      "callback": "array article, array attachments.",
      "emitted": true,
      "data_keys": [
        "article",
        "attachments"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:attachment:deleted",
      "method": "onKnowledgebaseAttachmentDeleted",
      "category": "Knowledgebase",
      "callback": "array article, array attachment, array deleted_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "attachment",
        "deleted_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:tags:retrieved",
      "method": "onKnowledgebaseTagsRetrieved",
      "category": "Knowledgebase",
      "callback": "array article, array tags.",
      "emitted": true,
      "data_keys": [
        "article",
        "tags"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:tag:created",
      "method": "onKnowledgebaseTagCreated",
      "category": "Knowledgebase",
      "callback": "array article, array tag, array created_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "created_by",
        "tag"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:admin:knowledgebase:tag:deleted",
      "method": "onKnowledgebaseTagDeleted",
      "category": "Knowledgebase",
      "callback": "array article, array tag, array deleted_by.",
      "emitted": true,
      "data_keys": [
        "article",
        "deleted_by",
        "tag"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:knowledgebase:categories:retrieved",
      "method": "onUserKnowledgebaseCategoriesRetrieved",
      "category": "Knowledgebase",
      "callback": "array categories, array pagination.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:knowledgebase:category:retrieved",
      "method": "onUserKnowledgebaseCategoryRetrieved",
      "category": "Knowledgebase",
      "callback": "array category.",
      "emitted": true,
      "data_keys": [
        "category"
      ],
      "source_files": [
        "backend/app/Controllers/User/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:knowledgebase:articles:retrieved",
      "method": "onUserKnowledgebaseArticlesRetrieved",
      "category": "Knowledgebase",
      "callback": "array articles, array pagination.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:knowledgebase:article:retrieved",
      "method": "onUserKnowledgebaseArticleRetrieved",
      "category": "Knowledgebase",
      "callback": "array article, array attachments, array tags, array|null user.",
      "emitted": true,
      "data_keys": [
        "article",
        "attachments",
        "tags",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:knowledgebase:category:articles:retrieved",
      "method": "onUserKnowledgebaseCategoryArticlesRetrieved",
      "category": "Knowledgebase",
      "callback": "array category, array articles, array pagination.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/KnowledgebaseController.php"
      ]
    },
    {
      "name": "featherpanel:ldap:provider:create",
      "method": "onLdapProviderCreated",
      "category": "LdapProviders",
      "callback": "string|null user uuid, array provider.",
      "emitted": true,
      "data_keys": [
        "provider",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LdapProvidersController.php"
      ]
    },
    {
      "name": "featherpanel:ldap:provider:update",
      "method": "onLdapProviderUpdated",
      "category": "LdapProviders",
      "callback": "string|null user uuid, array provider, array changed fields.",
      "emitted": true,
      "data_keys": [
        "provider",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LdapProvidersController.php"
      ]
    },
    {
      "name": "featherpanel:ldap:provider:delete",
      "method": "onLdapProviderDeleted",
      "category": "LdapProviders",
      "callback": "string|null user uuid, array provider.",
      "emitted": true,
      "data_keys": [
        "provider",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LdapProvidersController.php"
      ]
    },
    {
      "name": "featherpanel:admin:locations:retrieved",
      "method": "onLocationsRetrieved",
      "category": "Locations",
      "callback": "array locations list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:locations:location:retrieved",
      "method": "onLocationRetrieved",
      "category": "Locations",
      "callback": "int location id, array location data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:locations:location:created",
      "method": "onLocationCreated",
      "category": "Locations",
      "callback": "array location data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "location"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LocationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:locations:location:updated",
      "method": "onLocationUpdated",
      "category": "Locations",
      "callback": "int location id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "location",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LocationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:locations:location:deleted",
      "method": "onLocationDeleted",
      "category": "Locations",
      "callback": "int location id, array location data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "location"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LocationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:locations:error",
      "method": "onLocationsError",
      "category": "Locations",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:locations:location:not:found",
      "method": "onLocationNotFound",
      "category": "Locations",
      "callback": "int location id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:log_viewer:viewed",
      "method": "onLogViewed",
      "category": "LogViewer",
      "callback": "string log type, string file name.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:log_viewer:cleared",
      "method": "onLogCleared",
      "category": "LogViewer",
      "callback": "string log type, string file name.",
      "emitted": true,
      "data_keys": [
        "cleared_by",
        "log_file",
        "log_type"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LogViewerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:log_viewer:uploaded",
      "method": "onLogsUploaded",
      "category": "LogViewer",
      "callback": "array upload results.",
      "emitted": true,
      "data_keys": [
        "results",
        "uploaded_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/LogViewerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:log_viewer:error",
      "method": "onLogViewerError",
      "category": "LogViewer",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:mail_hosts:host:created",
      "method": "onMailHostCreated",
      "category": "MailHosts",
      "callback": "array host data.",
      "emitted": true,
      "data_keys": [
        "host"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MailHostsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mail_hosts:host:updated",
      "method": "onMailHostUpdated",
      "category": "MailHosts",
      "callback": "int host id, array host data.",
      "emitted": true,
      "data_keys": [
        "host",
        "host_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MailHostsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mail_hosts:host:deleted",
      "method": "onMailHostDeleted",
      "category": "MailHosts",
      "callback": "int host id, array host data.",
      "emitted": true,
      "data_keys": [
        "host",
        "host_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MailHostsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mail_templates:retrieved",
      "method": "onMailTemplatesRetrieved",
      "category": "MailTemplates",
      "callback": "array templates list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:mail_templates:template:retrieved",
      "method": "onMailTemplateRetrieved",
      "category": "MailTemplates",
      "callback": "int template id, array template data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:mail_templates:template:created",
      "method": "onMailTemplateCreated",
      "category": "MailTemplates",
      "callback": "array template data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "template_data",
        "template_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MailTemplatesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mail_templates:template:updated",
      "method": "onMailTemplateUpdated",
      "category": "MailTemplates",
      "callback": "int template id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "template",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MailTemplatesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mail_templates:template:deleted",
      "method": "onMailTemplateDeleted",
      "category": "MailTemplates",
      "callback": "int template id, array template data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "template"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MailTemplatesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mail_templates:error",
      "method": "onMailTemplatesError",
      "category": "MailTemplates",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:mail_templates:template:not:found",
      "method": "onMailTemplateNotFound",
      "category": "MailTemplates",
      "callback": "int template id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:mounts:mount:created",
      "method": "onMountCreated",
      "category": "Mounts",
      "callback": "array mount data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "mount",
        "mount_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MountsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mounts:mount:updated",
      "method": "onMountUpdated",
      "category": "Mounts",
      "callback": "int mount id, array mount data.",
      "emitted": true,
      "data_keys": [
        "mount",
        "mount_id",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MountsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:mounts:mount:deleted",
      "method": "onMountDeleted",
      "category": "Mounts",
      "callback": "int mount id, array mount data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "mount_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/MountsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:nodes:retrieved",
      "method": "onNodesRetrieved",
      "category": "Nodes",
      "callback": "array nodes list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:nodes:node:retrieved",
      "method": "onNodeRetrieved",
      "category": "Nodes",
      "callback": "int node id, array node data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:nodes:node:created",
      "method": "onNodeCreated",
      "category": "Nodes",
      "callback": "array node data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "node"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NodesController.php",
        "backend/app/Controllers/Admin/PterodactylImporterController.php"
      ]
    },
    {
      "name": "featherpanel:admin:nodes:node:updated",
      "method": "onNodeUpdated",
      "category": "Nodes",
      "callback": "int node id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "node",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NodesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:nodes:node:deleted",
      "method": "onNodeDeleted",
      "category": "Nodes",
      "callback": "int node id, array node data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "node"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NodesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:nodes:node:key:reset",
      "method": "onNodeKeyReset",
      "category": "Nodes",
      "callback": "int node id, string new key.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:nodes:error",
      "method": "onNodesError",
      "category": "Nodes",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:nodes:node:not:found",
      "method": "onNodeNotFound",
      "category": "Nodes",
      "callback": "int node id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:nodes:node:connection:error",
      "method": "onNodeConnectionError",
      "category": "Nodes",
      "callback": "int node id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:notifications:retrieved",
      "method": "onNotificationsRetrieved",
      "category": "Notifications",
      "callback": "array notifications list.",
      "emitted": true,
      "data_keys": [
        "filters",
        "limit",
        "notifications",
        "page",
        "pagination",
        "search",
        "total",
        "type"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NotificationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:notifications:notification:retrieved",
      "method": "onNotificationRetrieved",
      "category": "Notifications",
      "callback": "int notification id, array notification data.",
      "emitted": true,
      "data_keys": [
        "notification_data",
        "notification_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NotificationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:notifications:notification:created",
      "method": "onNotificationCreated",
      "category": "Notifications",
      "callback": "array notification data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "emailed",
        "notification_data",
        "notification_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NotificationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:notifications:notification:updated",
      "method": "onNotificationUpdated",
      "category": "Notifications",
      "callback": "int notification id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "new_data",
        "notification_id",
        "old_data",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NotificationsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:notifications:notification:deleted",
      "method": "onNotificationDeleted",
      "category": "Notifications",
      "callback": "int notification id, array notification data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "notification_data",
        "notification_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NotificationsController.php"
      ]
    },
    {
      "name": "featherpanel:user:notifications:notification:dismissed",
      "method": "onNotificationDismissed",
      "category": "Notifications",
      "callback": "int notification id, int user id.",
      "emitted": true,
      "data_keys": [
        "notification_id",
        "user",
        "user_id"
      ],
      "source_files": [
        "backend/app/Controllers/User/NotificationController.php"
      ]
    },
    {
      "name": "featherpanel:admin:notifications:error",
      "method": "onNotificationsError",
      "category": "Notifications",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:notifications:notification:not:found",
      "method": "onNotificationNotFound",
      "category": "Notifications",
      "callback": "int notification id, string error message.",
      "emitted": true,
      "data_keys": [
        "error_message",
        "notification_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/NotificationsController.php"
      ]
    },
    {
      "name": "featherpanel:oidc:provider:create",
      "method": "onOidcProviderCreated",
      "category": "OidcProviders",
      "callback": "string|null user uuid, array provider.",
      "emitted": true,
      "data_keys": [
        "provider",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/OidcProvidersController.php"
      ]
    },
    {
      "name": "featherpanel:oidc:provider:update",
      "method": "onOidcProviderUpdated",
      "category": "OidcProviders",
      "callback": "string|null user uuid, array provider, array changed fields.",
      "emitted": true,
      "data_keys": [
        "provider",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/OidcProvidersController.php"
      ]
    },
    {
      "name": "featherpanel:oidc:provider:delete",
      "method": "onOidcProviderDeleted",
      "category": "OidcProviders",
      "callback": "string|null user uuid, array provider.",
      "emitted": true,
      "data_keys": [
        "provider",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/OidcProvidersController.php"
      ]
    },
    {
      "name": "featherpanel:auth:passkey:registered",
      "method": "onPasskeyRegistered",
      "category": "Passkeys",
      "callback": "array user, array passkey.",
      "emitted": true,
      "data_keys": [
        "label",
        "passkey_id",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/PasskeyController.php"
      ]
    },
    {
      "name": "featherpanel:auth:passkey:deleted",
      "method": "onPasskeyDeleted",
      "category": "Passkeys",
      "callback": "array user, int passkey id.",
      "emitted": true,
      "data_keys": [
        "passkey_id",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/PasskeyController.php"
      ]
    },
    {
      "name": "featherpanel:auth:passkey:updated",
      "method": "onPasskeyUpdated",
      "category": "Passkeys",
      "callback": "array user, array passkey.",
      "emitted": true,
      "data_keys": [
        "label",
        "passkey_id",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/PasskeyController.php"
      ]
    },
    {
      "name": "featherpanel:auth:passkey:authentication:success",
      "method": "onPasskeyAuthenticationSuccess",
      "category": "Passkeys",
      "callback": "array user.",
      "emitted": true,
      "data_keys": [
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/PasskeyController.php"
      ]
    },
    {
      "name": "featherpanel:auth:passkey:authentication:failed",
      "method": "onPasskeyAuthenticationFailed",
      "category": "Passkeys",
      "callback": "array context.",
      "emitted": true,
      "data_keys": [
        "error",
        "message"
      ],
      "source_files": [
        "backend/app/Controllers/User/Auth/PasskeyController.php"
      ]
    },
    {
      "name": "featherpanel:admin:permissions:retrieved",
      "method": "onPermissionsRetrieved",
      "category": "Permissions",
      "callback": "array permissions list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:permissions:permission:retrieved",
      "method": "onPermissionRetrieved",
      "category": "Permissions",
      "callback": "int permission id, array permission data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:permissions:permission:created",
      "method": "onPermissionCreated",
      "category": "Permissions",
      "callback": "array permission data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "permission"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PermissionsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:permissions:permission:updated",
      "method": "onPermissionUpdated",
      "category": "Permissions",
      "callback": "int permission id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "permission",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PermissionsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:permissions:permission:deleted",
      "method": "onPermissionDeleted",
      "category": "Permissions",
      "callback": "int permission id, array permission data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "permission"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PermissionsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:permissions:error",
      "method": "onPermissionsError",
      "category": "Permissions",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:permissions:permission:not:found",
      "method": "onPermissionNotFound",
      "category": "Permissions",
      "callback": "int permission id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:plugin_manager:plugin:created",
      "method": "onPluginCreated",
      "category": "PluginManager",
      "callback": "string identifier, array plugin data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "identifier",
        "plugin_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PluginManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:plugin_manager:plugin:updated",
      "method": "onPluginUpdated",
      "category": "PluginManager",
      "callback": "string identifier, array updated data.",
      "emitted": true,
      "data_keys": [
        "identifier",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PluginManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:plugin_manager:settings:updated",
      "method": "onPluginSettingsUpdated",
      "category": "PluginManager",
      "callback": "string identifier, array settings data.",
      "emitted": true,
      "data_keys": [
        "identifier",
        "settings",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PluginManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:plugin_manager:file:created",
      "method": "onPluginFileCreated",
      "category": "PluginManager",
      "callback": "string identifier, string file type, array file data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "file_data",
        "file_type",
        "identifier",
        "widget_id",
        "widgets"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PluginManagerController.php"
      ]
    },
    {
      "name": "featherpanel:admin:plugin_manager:error",
      "method": "onPluginManagerError",
      "category": "PluginManager",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:system:plugins:ui:sidebar:retrieved",
      "method": "onSidebarRetrieved",
      "category": "PluginUi",
      "callback": "array sidebar sections, array context metadata.",
      "emitted": true,
      "data_keys": [
        "context",
        "server_spell_id",
        "sidebar"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginSidebarController.php"
      ]
    },
    {
      "name": "featherpanel:system:plugins:ui:widgets:retrieved",
      "method": "onWidgetsRetrieved",
      "category": "PluginUi",
      "callback": "array widgets by page/location, array context metadata.",
      "emitted": true,
      "data_keys": [
        "context",
        "page_filter",
        "widgets"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginWidgetController.php"
      ]
    },
    {
      "name": "featherpanel:system:plugins:ui:public-pages:retrieved",
      "method": "onPublicPagesRetrieved",
      "category": "PluginUi",
      "callback": "array public pages from Frontend/public.json aggregations.",
      "emitted": true,
      "data_keys": [
        "pages"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginPublicPagesController.php"
      ]
    },
    {
      "name": "featherpanel:system:plugins:ui:error",
      "method": "onUiError",
      "category": "PluginUi",
      "callback": "string source, string message, array context metadata.",
      "emitted": true,
      "data_keys": [
        "context",
        "message",
        "plugin",
        "source"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginPublicPagesController.php",
        "backend/app/Controllers/System/PluginSidebarController.php",
        "backend/app/Controllers/System/PluginWidgetController.php"
      ]
    },
    {
      "name": "featherpanel:system:plugins:ui:themes:retrieved",
      "method": "onThemesRetrieved",
      "category": "PluginUi",
      "callback": "array themes from Frontend/theme.json aggregations.",
      "emitted": true,
      "data_keys": [
        "themes"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginThemesController.php"
      ]
    },
    {
      "name": "featherpanel:system:plugins:ui:overrides:retrieved",
      "method": "onOverridesRetrieved",
      "category": "PluginUi",
      "callback": "array overrides from Frontend/overrides.json aggregations.",
      "emitted": true,
      "data_keys": [
        "actions",
        "hide",
        "replace"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginOverridesController.php"
      ]
    },
    {
      "name": "featherpanel:system:plugins:ui:packs:retrieved",
      "method": "onUiPacksRetrieved",
      "category": "PluginUi",
      "callback": "array UI packs from Frontend/ui.json aggregations.",
      "emitted": true,
      "data_keys": [
        "packs"
      ],
      "source_files": [
        "backend/app/Controllers/System/PluginUiPacksController.php"
      ]
    },
    {
      "name": "plugins:settings:update",
      "method": "onPluginSettingUpdate",
      "category": "PluginsSettings",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "identifier",
        "key",
        "value"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PluginsController.php"
      ]
    },
    {
      "name": "plugins:settings:delete",
      "method": "onPluginSettingDelete",
      "category": "PluginsSettings",
      "callback": "No parameters",
      "emitted": true,
      "data_keys": [
        "identifier",
        "key"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PluginsController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:sftp:authenticated",
      "method": "onQuilldSftpAuthenticated",
      "category": "Quilld",
      "callback": "array auth context.",
      "emitted": true,
      "data_keys": [
        "permissions",
        "user_uuid",
        "webspace_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/Sftp/SftpAuthController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:webspace:retrieved",
      "method": "onQuilldWebSpaceRetrieved",
      "category": "Quilld",
      "callback": "array webspace.",
      "emitted": true,
      "data_keys": [
        "webspace"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/FeatherQuilldWebSpaceController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:webspace:updated",
      "method": "onQuilldWebSpaceUpdated",
      "category": "Quilld",
      "callback": "array webspace.",
      "emitted": true,
      "data_keys": [
        "webspace"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/FeatherQuilldWebSpaceController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:install:retrieved",
      "method": "onQuilldInstallRetrieved",
      "category": "Quilld",
      "callback": "array webspace, array install.",
      "emitted": true,
      "data_keys": [
        "install",
        "webspace"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/FeatherQuilldWebSpaceController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:install:completed",
      "method": "onQuilldInstallCompleted",
      "category": "Quilld",
      "callback": "array webspace.",
      "emitted": true,
      "data_keys": [
        "reinstall",
        "status",
        "successful",
        "webspace"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/FeatherQuilldWebSpaceController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:transfer:status",
      "method": "onQuilldTransferStatusReported",
      "category": "Quilld",
      "callback": "array transfer.",
      "emitted": true,
      "data_keys": [
        "error",
        "successful",
        "webspace_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/FeatherQuilldTransferController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:activity:logged",
      "method": "onQuilldActivityLogged",
      "category": "Quilld",
      "callback": "array activity.",
      "emitted": true,
      "data_keys": [
        "processed_count"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/QuilldActivityController.php"
      ]
    },
    {
      "name": "featherpanel:quilld:config:retrieved",
      "method": "onQuilldConfigRetrieved",
      "category": "Quilld",
      "callback": "array config.",
      "emitted": true,
      "data_keys": [
        "panel_url",
        "web_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Quilld/FeatherQuilldConfigController.php"
      ]
    },
    {
      "name": "featherpanel:rate-limiter:global:update",
      "method": "onRateLimiterGlobalUpdated",
      "category": "RateLimiter",
      "callback": "string|null user uuid, bool enabled.",
      "emitted": true,
      "data_keys": [
        "enabled",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RateLimitController.php"
      ]
    },
    {
      "name": "featherpanel:rate-limiter:update",
      "method": "onRateLimiterUpdated",
      "category": "RateLimiter",
      "callback": "string|null user uuid, string route name, array config.",
      "emitted": true,
      "data_keys": [
        "config",
        "route_name",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RateLimitController.php"
      ]
    },
    {
      "name": "featherpanel:rate-limiter:delete",
      "method": "onRateLimiterDeleted",
      "category": "RateLimiter",
      "callback": "string|null user uuid, string route name.",
      "emitted": true,
      "data_keys": [
        "route_name",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RateLimitController.php"
      ]
    },
    {
      "name": "featherpanel:rate-limiter:bulk:update",
      "method": "onRateLimiterBulkUpdated",
      "category": "RateLimiter",
      "callback": "string|null user uuid, array updated routes, array errors.",
      "emitted": true,
      "data_keys": [
        "errors",
        "updated_routes",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RateLimitController.php"
      ]
    },
    {
      "name": "featherpanel:admin:realms:retrieved",
      "method": "onRealmsRetrieved",
      "category": "Realms",
      "callback": "array realms list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:realms:realm:retrieved",
      "method": "onRealmRetrieved",
      "category": "Realms",
      "callback": "int realm id, array realm data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:realms:realm:created",
      "method": "onRealmCreated",
      "category": "Realms",
      "callback": "array realm data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "realm"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RealmsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:realms:realm:updated",
      "method": "onRealmUpdated",
      "category": "Realms",
      "callback": "int realm id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "realm",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RealmsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:realms:realm:deleted",
      "method": "onRealmDeleted",
      "category": "Realms",
      "callback": "int realm id, array realm data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "realm"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RealmsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:realms:error",
      "method": "onRealmsError",
      "category": "Realms",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:realms:realm:not:found",
      "method": "onRealmNotFound",
      "category": "Realms",
      "callback": "int realm id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:redirect_links:retrieved",
      "method": "onRedirectLinksRetrieved",
      "category": "RedirectLinks",
      "callback": "array links list.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:redirect_links:link:retrieved",
      "method": "onRedirectLinkRetrieved",
      "category": "RedirectLinks",
      "callback": "int link id, array link data.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:redirect_links:link:created",
      "method": "onRedirectLinkCreated",
      "category": "RedirectLinks",
      "callback": "array link data.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:redirect_links:link:updated",
      "method": "onRedirectLinkUpdated",
      "category": "RedirectLinks",
      "callback": "int link id, array old data, array new data.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:redirect_links:link:deleted",
      "method": "onRedirectLinkDeleted",
      "category": "RedirectLinks",
      "callback": "int link id, array link data.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:redirect_links:error",
      "method": "onRedirectLinksError",
      "category": "RedirectLinks",
      "callback": "string error message, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:redirect_links:link:not:found",
      "method": "onRedirectLinkNotFound",
      "category": "RedirectLinks",
      "callback": "int link id, string error message.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Chat/RedirectLink.php"
      ]
    },
    {
      "name": "featherpanel:admin:roles:retrieved",
      "method": "onRolesRetrieved",
      "category": "Roles",
      "callback": "array roles list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:roles:role:retrieved",
      "method": "onRoleRetrieved",
      "category": "Roles",
      "callback": "int role id, array role data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:roles:role:created",
      "method": "onRoleCreated",
      "category": "Roles",
      "callback": "array role data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "role"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RolesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:roles:role:updated",
      "method": "onRoleUpdated",
      "category": "Roles",
      "callback": "int role id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "role",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RolesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:roles:role:deleted",
      "method": "onRoleDeleted",
      "category": "Roles",
      "callback": "int role id, array role data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "role"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/RolesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:roles:error",
      "method": "onRolesError",
      "category": "Roles",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:roles:role:not:found",
      "method": "onRoleNotFound",
      "category": "Roles",
      "callback": "int role id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:allocation:deleted",
      "method": "onServerAllocationDeleted",
      "category": "ServerAllocation",
      "callback": "string server uuid, int allocation id.",
      "emitted": true,
      "data_keys": [
        "allocation_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerAllocationController.php",
        "backend/app/Services/Chatbot/Tools/DeleteAllocationTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:allocation:set_primary",
      "method": "onServerAllocationSetPrimary",
      "category": "ServerAllocation",
      "callback": "string server uuid, int allocation id, bool is_primary.",
      "emitted": true,
      "data_keys": [
        "allocation_id",
        "is_primary",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerAllocationController.php",
        "backend/app/Services/Chatbot/Tools/SetPrimaryAllocationTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:allocation:error",
      "method": "onServerAllocationError",
      "category": "ServerAllocation",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:backup:created",
      "method": "onServerBackupCreated",
      "category": "ServerBackup",
      "callback": "string server uuid, array backup data.",
      "emitted": true,
      "data_keys": [
        "backup_data",
        "backup_uuid",
        "id",
        "name",
        "server_uuid",
        "type",
        "user_uuid",
        "uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerBackupController.php",
        "backend/app/Services/Chatbot/Tools/CreateBackupTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:backup:deleted",
      "method": "onServerBackupDeleted",
      "category": "ServerBackup",
      "callback": "string server uuid, string backup uuid.",
      "emitted": true,
      "data_keys": [
        "backup_uuid",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerBackupController.php",
        "backend/app/Services/Chatbot/Tools/DeleteBackupTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:backup:downloaded",
      "method": "onServerBackupDownloaded",
      "category": "ServerBackup",
      "callback": "string server uuid, string backup uuid, string download url.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:backup:restored",
      "method": "onServerBackupRestored",
      "category": "ServerBackup",
      "callback": "string server uuid, string backup uuid.",
      "emitted": true,
      "data_keys": [
        "backup_uuid",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerBackupController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:backup:error",
      "method": "onServerBackupError",
      "category": "ServerBackup",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:database:created",
      "method": "onServerDatabaseCreated",
      "category": "ServerDatabase",
      "callback": "string server uuid, array database data.",
      "emitted": true,
      "data_keys": [
        "database_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerDatabaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:database:updated",
      "method": "onServerDatabaseUpdated",
      "category": "ServerDatabase",
      "callback": "string server uuid, int database id, array updated data.",
      "emitted": true,
      "data_keys": [
        "database_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerDatabaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:database:deleted",
      "method": "onServerDatabaseDeleted",
      "category": "ServerDatabase",
      "callback": "string server uuid, int database id.",
      "emitted": true,
      "data_keys": [
        "bulk",
        "database_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerDatabaseController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:database:error",
      "method": "onServerDatabaseError",
      "category": "ServerDatabase",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:allocation:create",
      "method": "onServerAllocationCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int allocation id.",
      "emitted": true,
      "data_keys": [
        "allocation_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerAllocationController.php",
        "backend/app/Services/Chatbot/Tools/AutoAllocateTool.php"
      ]
    },
    {
      "name": "featherpanel:server:allocation:update",
      "method": "onServerAllocationUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int allocation id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:allocation:deleted",
      "method": "onServerAllocationDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int allocation id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:database:created",
      "method": "onServerDatabaseCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int database id.",
      "emitted": true,
      "data_keys": [
        "database_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/CreateDatabaseTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:database:updated",
      "method": "onServerDatabaseUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int database id.",
      "emitted": true,
      "data_keys": [
        "database_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/UpdateDatabaseTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:database:deleted",
      "method": "onServerDatabaseDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int database id.",
      "emitted": true,
      "data_keys": [
        "database_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/DeleteDatabaseTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:backup:created",
      "method": "onServerBackupCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string backup uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:backup:restored",
      "method": "onServerBackupRestored",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string backup uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:backup:lock",
      "method": "onServerBackupLocked",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string backup uuid.",
      "emitted": true,
      "data_keys": [
        "backup_uuid",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerBackupController.php"
      ]
    },
    {
      "name": "featherpanel:server:backup:unlock",
      "method": "onServerBackupUnlocked",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string backup uuid.",
      "emitted": true,
      "data_keys": [
        "backup_uuid",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerBackupController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:backup:deleted",
      "method": "onServerBackupDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string backup uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:schedule:created",
      "method": "onServerScheduleCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/CreateScheduleTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:schedule:updated",
      "method": "onServerScheduleUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/UpdateScheduleTool.php"
      ]
    },
    {
      "name": "featherpanel:server:schedule:status:toggle",
      "method": "onServerScheduleStatusToggled",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:schedule:deleted",
      "method": "onServerScheduleDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/DeleteScheduleTool.php"
      ]
    },
    {
      "name": "featherpanel:server:update",
      "method": "onServerUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid.",
      "emitted": true,
      "data_keys": [
        "action",
        "hook_type",
        "import_id",
        "sequence_id",
        "server",
        "server_uuid",
        "step_id",
        "updated_by",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ServersController.php",
        "backend/app/Controllers/User/Server/ServerFirewallController.php",
        "backend/app/Controllers/User/Server/ServerImportController.php",
        "backend/app/Controllers/User/Server/ServerLifecycleHookController.php",
        "backend/app/Services/Chatbot/Tools/UpdateServerTool.php"
      ]
    },
    {
      "name": "featherpanel:server:reinstall",
      "method": "onServerReinstalled",
      "category": "Server",
      "callback": "string user uuid, string server uuid.",
      "emitted": true,
      "data_keys": [
        "server",
        "server_uuid",
        "updated_by",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ServersController.php",
        "backend/app/Controllers/User/Server/ServerUserController.php"
      ]
    },
    {
      "name": "featherpanel:server:delete",
      "method": "onServerDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "hard_delete",
        "server"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ServersController.php",
        "backend/app/Controllers/User/Server/ServerUserController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:created",
      "method": "onServerTaskCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id, int task id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/CreateTaskTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:updated",
      "method": "onServerTaskUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id, int task id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/UpdateTaskTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:sequence:updated",
      "method": "onServerTaskSequenceUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id, int task id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:task:status:toggle",
      "method": "onServerTaskStatusToggled",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id, int task id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/TaskController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:deleted",
      "method": "onServerTaskDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int schedule id, int task id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Services/Chatbot/Tools/DeleteTaskTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:subuser:created",
      "method": "onServerSubuserCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int subuser id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:subuser:updated",
      "method": "onServerSubuserUpdated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int subuser id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:subuser:deleted",
      "method": "onServerSubuserDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, int subuser id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:power:action",
      "method": "onServerPowerAction",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string action.",
      "emitted": true,
      "data_keys": [
        "action",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Power/ServerPowerController.php",
        "backend/app/Services/Chatbot/Tools/ServerPowerActionTool.php"
      ]
    },
    {
      "name": "featherpanel:server:lifecycle-hook:started",
      "method": "onServerLifecycleHookStarted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string power action, int hook id, string hook type.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Services/Server/LifecycleHookExecutorService.php"
      ]
    },
    {
      "name": "featherpanel:server:lifecycle-hook:completed",
      "method": "onServerLifecycleHookCompleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string power action, int hook id, string hook type.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Services/Server/LifecycleHookExecutorService.php"
      ]
    },
    {
      "name": "featherpanel:server:lifecycle-hook:failed",
      "method": "onServerLifecycleHookFailed",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string power action, int hook id, string hook type, string error.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Services/Server/LifecycleHookExecutorService.php"
      ]
    },
    {
      "name": "featherpanel:server:lifecycle-hook:step:started",
      "method": "onServerLifecycleHookStepStarted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string power action, int hook id, int step id, string task type.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Services/Server/LifecycleHookExecutorService.php"
      ]
    },
    {
      "name": "featherpanel:server:lifecycle-hook:step:completed",
      "method": "onServerLifecycleHookStepCompleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string power action, int hook id, int step id, string task type.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Services/Server/LifecycleHookExecutorService.php"
      ]
    },
    {
      "name": "featherpanel:server:lifecycle-hook:step:failed",
      "method": "onServerLifecycleHookStepFailed",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string power action, int hook id, int step id, string task type, string error.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Services/Server/LifecycleHookExecutorService.php"
      ]
    },
    {
      "name": "featherpanel:user:server:files:deleted",
      "method": "onServerFilesDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:directory:created",
      "method": "onServerDirectoryCreated",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string directory path.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:pull:deleted",
      "method": "onServerPullProcessDeleted",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string pull id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:file:saved",
      "method": "onServerFileWritten",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string file path.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:file:renamed",
      "method": "onServerFileRenamed",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string old path, string new path.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:files:copy",
      "method": "onServerFilesCopied",
      "category": "Server",
      "callback": "string user uuid, string server uuid, array file paths.",
      "emitted": true,
      "data_keys": [
        "file_paths",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/CopyFilesTool.php"
      ]
    },
    {
      "name": "featherpanel:server:file:compress",
      "method": "onServerFileCompressed",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string file path.",
      "emitted": true,
      "data_keys": [
        "file_path",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/CompressFilesTool.php"
      ]
    },
    {
      "name": "featherpanel:server:file:decompress",
      "method": "onServerFileDecompressed",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string file path.",
      "emitted": true,
      "data_keys": [
        "file_path",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/DecompressArchiveTool.php"
      ]
    },
    {
      "name": "featherpanel:server:file:permissions",
      "method": "onServerFilePermissionsChanged",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string file path, string permissions.",
      "emitted": true,
      "data_keys": [
        "file_path",
        "permissions",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:file:uploaded",
      "method": "onServerFileUploaded",
      "category": "Server",
      "callback": "string user uuid, string server uuid, string file path.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:created",
      "method": "onServerCreated",
      "category": "Server",
      "callback": "int server id, array server data, array created by.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "server_data",
        "server_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PterodactylImporterController.php",
        "backend/app/Controllers/Admin/ServersController.php"
      ]
    },
    {
      "name": "featherpanel:server:suspended",
      "method": "onServerSuspended",
      "category": "Server",
      "callback": "array server data, array suspended by.",
      "emitted": true,
      "data_keys": [
        "email",
        "server",
        "suspended_by",
        "username",
        "uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ServersController.php",
        "backend/app/Services/FeatherZeroTrust/SuspensionService.php"
      ]
    },
    {
      "name": "featherpanel:server:unsuspended",
      "method": "onServerUnsuspended",
      "category": "Server",
      "callback": "array server data, array unsuspended by.",
      "emitted": true,
      "data_keys": [
        "server",
        "unsuspended_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ServersController.php"
      ]
    },
    {
      "name": "featherpanel:server:transferred",
      "method": "onServerTransferred",
      "category": "Server",
      "callback": "array server data, array transferred by.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:transfer:completed",
      "method": "onServerTransferCompleted",
      "category": "Server",
      "callback": "array server data, bool successful, int|null destination_node_id.",
      "emitted": true,
      "data_keys": [
        "destination_node_id",
        "old_node_id",
        "server",
        "successful"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Transfer/WingsTransferStatusController.php"
      ]
    },
    {
      "name": "featherpanel:server:transfer:failed",
      "method": "onServerTransferFailed",
      "category": "Server",
      "callback": "array server data, bool successful, string|null error.",
      "emitted": true,
      "data_keys": [
        "error",
        "server",
        "source_node_id",
        "successful"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Transfer/WingsTransferStatusController.php"
      ]
    },
    {
      "name": "featherpanel:server:transfer:initiated",
      "method": "onServerTransferInitiated",
      "category": "Server",
      "callback": "array server data, array source_node, array destination_node, array initiated_by.",
      "emitted": true,
      "data_keys": [
        "destination_node",
        "initiated_by",
        "server",
        "source_node"
      ],
      "source_files": [
        "backend/app/Services/Servers/ServerTransferInitiator.php"
      ]
    },
    {
      "name": "featherpanel:server:transfer:cancelled",
      "method": "onServerTransferCancelled",
      "category": "Server",
      "callback": "array server data, array cancelled_by.",
      "emitted": true,
      "data_keys": [
        "cancelled_by",
        "server"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/ServersController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:files:deleted",
      "method": "onServerFilesDeleted",
      "category": "ServerFiles",
      "callback": "string server uuid, array files deleted.",
      "emitted": true,
      "data_keys": [
        "files",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/DeleteFilesTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:directory:created",
      "method": "onServerDirectoryCreated",
      "category": "ServerFiles",
      "callback": "string server uuid, string directory path.",
      "emitted": true,
      "data_keys": [
        "directory_path",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/CreateDirectoryTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:file:saved",
      "method": "onServerFileSaved",
      "category": "ServerFiles",
      "callback": "string server uuid, string file path, int size.",
      "emitted": true,
      "data_keys": [
        "file_path",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/WriteFileTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:file:renamed",
      "method": "onServerFileRenamed",
      "category": "ServerFiles",
      "callback": "string server uuid, string file path.",
      "emitted": true,
      "data_keys": [
        "file_path",
        "files",
        "new_path",
        "root",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php",
        "backend/app/Services/Chatbot/Tools/RenameFileTool.php"
      ]
    },
    {
      "name": "featherpanel:user:server:file:uploaded",
      "method": "onServerFileUploaded",
      "category": "ServerFiles",
      "callback": "string server uuid, array file data.",
      "emitted": true,
      "data_keys": [
        "file_path",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:pull:deleted",
      "method": "onServerPullProcessDeleted",
      "category": "ServerFiles",
      "callback": "string server uuid, string pull id.",
      "emitted": true,
      "data_keys": [
        "pull_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/Files/ServerFilesController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:files:error",
      "method": "onServerFilesError",
      "category": "ServerFiles",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:server:proxy:create",
      "method": "onServerProxyCreated",
      "category": "ServerProxy",
      "callback": "string user uuid, string server uuid, int|null proxy id, string domain, int port.",
      "emitted": true,
      "data_keys": [
        "domain",
        "port",
        "proxy_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerProxyController.php"
      ]
    },
    {
      "name": "featherpanel:server:proxy:delete",
      "method": "onServerProxyDeleted",
      "category": "ServerProxy",
      "callback": "string user uuid, string server uuid, int|null proxy id, string domain, int port.",
      "emitted": true,
      "data_keys": [
        "domain",
        "port",
        "proxy_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerProxyController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:schedule:created",
      "method": "onServerScheduleCreated",
      "category": "ServerSchedule",
      "callback": "string server uuid, array schedule data.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:schedule:updated",
      "method": "onServerScheduleUpdated",
      "category": "ServerSchedule",
      "callback": "string server uuid, int schedule id, array updated data.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:schedule:deleted",
      "method": "onServerScheduleDeleted",
      "category": "ServerSchedule",
      "callback": "string server uuid, int schedule id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:schedule:triggered",
      "method": "onServerScheduleTriggered",
      "category": "ServerSchedule",
      "callback": "string server uuid, int schedule id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:schedule:error",
      "method": "onServerScheduleError",
      "category": "ServerSchedule",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:subuser:created",
      "method": "onServerSubuserCreated",
      "category": "ServerSubuser",
      "callback": "string server uuid, array subuser data.",
      "emitted": true,
      "data_keys": [
        "server_uuid",
        "subuser_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/SubuserController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:subuser:updated",
      "method": "onServerSubuserUpdated",
      "category": "ServerSubuser",
      "callback": "string server uuid, int subuser id, array updated data.",
      "emitted": true,
      "data_keys": [
        "server_uuid",
        "subuser_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/SubuserController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:subuser:deleted",
      "method": "onServerSubuserDeleted",
      "category": "ServerSubuser",
      "callback": "string server uuid, int subuser id.",
      "emitted": true,
      "data_keys": [
        "server_uuid",
        "subuser_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/SubuserController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:subuser:error",
      "method": "onServerSubuserError",
      "category": "ServerSubuser",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:task:created",
      "method": "onServerTaskCreated",
      "category": "ServerTask",
      "callback": "string server uuid, int schedule id, array task data.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/TaskController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:updated",
      "method": "onServerTaskUpdated",
      "category": "ServerTask",
      "callback": "string server uuid, int schedule id, int task id, array updated data.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/TaskController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:deleted",
      "method": "onServerTaskDeleted",
      "category": "ServerTask",
      "callback": "string server uuid, int schedule id, int task id.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/TaskController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:sequence:updated",
      "method": "onServerTaskSequenceUpdated",
      "category": "ServerTask",
      "callback": "string server uuid, int schedule id, int task id, array new sequence.",
      "emitted": true,
      "data_keys": [
        "schedule_id",
        "server_uuid",
        "task_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/TaskController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:task:error",
      "method": "onServerTaskError",
      "category": "ServerTask",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:updated",
      "method": "onServerUserUpdated",
      "category": "ServerUser",
      "callback": "string server uuid, array updated data.",
      "emitted": true,
      "data_keys": [
        "server_uuid",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/ServerUserController.php"
      ]
    },
    {
      "name": "featherpanel:user:server:deleted",
      "method": "onServerUserDeleted",
      "category": "ServerUser",
      "callback": "string server uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:server:error",
      "method": "onServerUserError",
      "category": "ServerUser",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:settings:retrieved",
      "method": "onSettingsRetrieved",
      "category": "Settings",
      "callback": "array settings data.",
      "emitted": true,
      "data_keys": [
        "categories",
        "organized_settings",
        "settings"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SettingsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:settings:category:retrieved",
      "method": "onSettingsByCategoryRetrieved",
      "category": "Settings",
      "callback": "string category, array settings.",
      "emitted": true,
      "data_keys": [
        "categories",
        "category",
        "category_config",
        "settings"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SettingsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:settings:setting:retrieved",
      "method": "onSettingRetrieved",
      "category": "Settings",
      "callback": "string setting name, array setting data.",
      "emitted": true,
      "data_keys": [
        "setting_data",
        "setting_name"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SettingsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:settings:updated",
      "method": "onSettingsUpdated",
      "category": "Settings",
      "callback": "array updated settings, array old values.",
      "emitted": true,
      "data_keys": [
        "settings_data",
        "updated_settings",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SettingsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:settings:setting:updated",
      "method": "onSettingUpdated",
      "category": "Settings",
      "callback": "string setting name, mixed old value, mixed new value.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:settings:error",
      "method": "onSettingsError",
      "category": "Settings",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:settings:validation:error",
      "method": "onSettingValidationError",
      "category": "Settings",
      "callback": "string setting name, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:retrieved",
      "method": "onSpellsRetrieved",
      "category": "Spells",
      "callback": "array spells list.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:spell:retrieved",
      "method": "onSpellRetrieved",
      "category": "Spells",
      "callback": "int spell id, array spell data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:spell:created",
      "method": "onSpellCreated",
      "category": "Spells",
      "callback": "array spell data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "spell"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:spell:updated",
      "method": "onSpellUpdated",
      "category": "Spells",
      "callback": "int spell id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "spell",
        "updated_by",
        "updated_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:spell:deleted",
      "method": "onSpellDeleted",
      "category": "Spells",
      "callback": "int spell id, array spell data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "spell"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:by:realm:retrieved",
      "method": "onSpellsByRealmRetrieved",
      "category": "Spells",
      "callback": "int realm id, array spells.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:reordered",
      "method": "onSpellsReordered",
      "category": "Spells",
      "callback": "int realm id, array spells, array reordered_by.",
      "emitted": true,
      "data_keys": [
        "realm_id",
        "reordered_by",
        "spells"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:spells:imported",
      "method": "onSpellsImported",
      "category": "Spells",
      "callback": "array import data, array results.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:spell:exported",
      "method": "onSpellExported",
      "category": "Spells",
      "callback": "int spell id, array export data.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:variables:retrieved",
      "method": "onSpellVariablesRetrieved",
      "category": "Spells",
      "callback": "int spell id, array variables.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:variable:created",
      "method": "onSpellVariableCreated",
      "category": "Spells",
      "callback": "int spell id, array variable data.",
      "emitted": true,
      "data_keys": [
        "spell_id",
        "variable"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:variable:updated",
      "method": "onSpellVariableUpdated",
      "category": "Spells",
      "callback": "int variable id, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "updated_data",
        "variable"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:variable:deleted",
      "method": "onSpellVariableDeleted",
      "category": "Spells",
      "callback": "int variable id, array variable data.",
      "emitted": true,
      "data_keys": [
        "variable"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SpellsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:spells:error",
      "method": "onSpellsError",
      "category": "Spells",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:spells:spell:not:found",
      "method": "onSpellNotFound",
      "category": "Spells",
      "callback": "int spell id, string error message.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:subdomains:domains:retrieved",
      "method": "onSubdomainDomainsRetrieved",
      "category": "Subdomains",
      "callback": "array domains list.",
      "emitted": true,
      "data_keys": [
        "domains",
        "filters",
        "includeInactive",
        "limit",
        "page",
        "pagination",
        "search",
        "total"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:subdomains:domain:retrieved",
      "method": "onSubdomainDomainRetrieved",
      "category": "Subdomains",
      "callback": "string domain uuid, array domain data.",
      "emitted": true,
      "data_keys": [
        "domain_data",
        "domain_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:subdomains:domain:created",
      "method": "onSubdomainDomainCreated",
      "category": "Subdomains",
      "callback": "array domain data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "domain_data"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:subdomains:domain:updated",
      "method": "onSubdomainDomainUpdated",
      "category": "Subdomains",
      "callback": "string domain uuid, array old data, array new data.",
      "emitted": true,
      "data_keys": [
        "domain_uuid",
        "new_data",
        "old_data",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:subdomains:domain:deleted",
      "method": "onSubdomainDomainDeleted",
      "category": "Subdomains",
      "callback": "string domain uuid, array domain data.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "domain_data",
        "domain_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:admin:subdomains:settings:updated",
      "method": "onSubdomainSettingsUpdated",
      "category": "Subdomains",
      "callback": "array settings data.",
      "emitted": true,
      "data_keys": [
        "allow_user_subdomains",
        "cloudflare_api_key_set",
        "cloudflare_email",
        "max_subdomains_per_server",
        "settings",
        "updated_by"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:user:subdomain:created",
      "method": "onSubdomainCreated",
      "category": "Subdomains",
      "callback": "string subdomain uuid, array subdomain data, array server data.",
      "emitted": true,
      "data_keys": [
        "server_data",
        "subdomain_data",
        "subdomain_uuid",
        "user",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/SubdomainController.php",
        "backend/app/Services/Chatbot/Tools/CreateSubdomainTool.php"
      ]
    },
    {
      "name": "featherpanel:user:subdomain:deleted",
      "method": "onSubdomainDeleted",
      "category": "Subdomains",
      "callback": "string subdomain uuid, array subdomain data, array server data.",
      "emitted": true,
      "data_keys": [
        "server_data",
        "subdomain_data",
        "subdomain_uuid",
        "user",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Server/SubdomainController.php",
        "backend/app/Services/Chatbot/Tools/DeleteSubdomainTool.php"
      ]
    },
    {
      "name": "featherpanel:admin:subdomains:error",
      "method": "onSubdomainsError",
      "category": "Subdomains",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:admin:subdomains:domain:not:found",
      "method": "onSubdomainDomainNotFound",
      "category": "Subdomains",
      "callback": "string domain uuid, string error message.",
      "emitted": true,
      "data_keys": [
        "domain_uuid",
        "error_message"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/SubdomainsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:created",
      "method": "onTicketCreated",
      "category": "Ticket",
      "callback": "array ticket data, int ticket id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "ticket",
        "ticket_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketsController.php",
        "backend/app/Controllers/User/TicketsController.php",
        "backend/app/Controllers/User/User/SessionController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:updated",
      "method": "onTicketUpdated",
      "category": "Ticket",
      "callback": "array ticket data, array updated data, string user uuid.",
      "emitted": true,
      "data_keys": [
        "ticket",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:deleted",
      "method": "onTicketDeleted",
      "category": "Ticket",
      "callback": "array ticket data, string user uuid.",
      "emitted": true,
      "data_keys": [
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketsController.php",
        "backend/app/Controllers/User/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:message:created",
      "method": "onTicketMessageCreated",
      "category": "Ticket",
      "callback": "array ticket data, array message data, int message id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "message",
        "message_id",
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketMessagesController.php",
        "backend/app/Controllers/Admin/TicketsController.php",
        "backend/app/Controllers/User/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:message:deleted",
      "method": "onTicketMessageDeleted",
      "category": "Ticket",
      "callback": "array ticket data, int message id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "message_id",
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketMessagesController.php",
        "backend/app/Controllers/User/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:attachment:created",
      "method": "onTicketAttachmentCreated",
      "category": "Ticket",
      "callback": "array ticket data, array attachment data, int attachment id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "attachment",
        "attachment_id",
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketAttachmentsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:attachment:deleted",
      "method": "onTicketAttachmentDeleted",
      "category": "Ticket",
      "callback": "array ticket data, int attachment id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "attachment_id",
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketAttachmentsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:status:changed",
      "method": "onTicketStatusChanged",
      "category": "Ticket",
      "callback": "array ticket data, string old status, string new status, string user uuid.",
      "emitted": true,
      "data_keys": [
        "new_status",
        "old_status",
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:closed",
      "method": "onTicketClosed",
      "category": "Ticket",
      "callback": "array ticket data, string user uuid.",
      "emitted": true,
      "data_keys": [
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:reopened",
      "method": "onTicketReopened",
      "category": "Ticket",
      "callback": "array ticket data, string user uuid.",
      "emitted": true,
      "data_keys": [
        "ticket",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketsController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:category:created",
      "method": "onTicketCategoryCreated",
      "category": "Ticket",
      "callback": "array category data, int category id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "category",
        "category_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketCategoriesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:category:updated",
      "method": "onTicketCategoryUpdated",
      "category": "Ticket",
      "callback": "array category data, array updated data, int category id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "category",
        "category_id",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketCategoriesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:category:deleted",
      "method": "onTicketCategoryDeleted",
      "category": "Ticket",
      "callback": "array category data, int category id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "category",
        "category_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketCategoriesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:status:created",
      "method": "onTicketStatusCreated",
      "category": "Ticket",
      "callback": "array status data, int status id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "status",
        "status_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketStatusesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:status:updated",
      "method": "onTicketStatusUpdated",
      "category": "Ticket",
      "callback": "array status data, array updated data, int status id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "status",
        "status_id",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketStatusesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:status:deleted",
      "method": "onTicketStatusDeleted",
      "category": "Ticket",
      "callback": "array status data, int status id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "status",
        "status_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketStatusesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:priority:created",
      "method": "onTicketPriorityCreated",
      "category": "Ticket",
      "callback": "array priority data, int priority id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "priority",
        "priority_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketPrioritiesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:priority:updated",
      "method": "onTicketPriorityUpdated",
      "category": "Ticket",
      "callback": "array priority data, array updated data, int priority id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "priority",
        "priority_id",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketPrioritiesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:priority:deleted",
      "method": "onTicketPriorityDeleted",
      "category": "Ticket",
      "callback": "array priority data, int priority id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "priority",
        "priority_id",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketPrioritiesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:message:updated",
      "method": "onTicketMessageUpdated",
      "category": "Ticket",
      "callback": "array ticket data, array message data, array updated data, int message id, string user uuid.",
      "emitted": true,
      "data_keys": [
        "message",
        "message_id",
        "ticket",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/TicketMessagesController.php"
      ]
    },
    {
      "name": "featherpanel:ticket:attachment:updated",
      "method": "onTicketAttachmentUpdated",
      "category": "Ticket",
      "callback": "array ticket data, array attachment data, array updated data, int attachment id, string user uuid.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:api_client:created",
      "method": "onUserApiClientCreated",
      "category": "UserApiClient",
      "callback": "array api_client data.",
      "emitted": true,
      "data_keys": [
        "api_client",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/ApiClientController.php"
      ]
    },
    {
      "name": "featherpanel:user:api_client:updated",
      "method": "onUserApiClientUpdated",
      "category": "UserApiClient",
      "callback": "int api_client id, array updated data.",
      "emitted": true,
      "data_keys": [
        "action",
        "api_client",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/ApiClientController.php"
      ]
    },
    {
      "name": "featherpanel:user:api_client:deleted",
      "method": "onUserApiClientDeleted",
      "category": "UserApiClient",
      "callback": "int api_client id, array api_client data.",
      "emitted": true,
      "data_keys": [
        "api_client",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/ApiClientController.php"
      ]
    },
    {
      "name": "featherpanel:user:api_client:error",
      "method": "onUserApiClientError",
      "category": "UserApiClient",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:api_client:created",
      "method": "onUserApiKeyCreated",
      "category": "User",
      "callback": "string user uuid, string api key id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:api_client:updated",
      "method": "onUserApiKeyUpdated",
      "category": "User",
      "callback": "string user uuid, string api key id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:api_client:deleted",
      "method": "onUserApiKeyDeleted",
      "category": "User",
      "callback": "string user uuid, string api key id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:update",
      "method": "onUserUpdate",
      "category": "User",
      "callback": "string user uuid.",
      "emitted": true,
      "data_keys": [
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/SessionController.php"
      ]
    },
    {
      "name": "featherpanel:user:ssh_key:created",
      "method": "onUserSshKeyCreated",
      "category": "User",
      "callback": "string user uuid, string ssh key id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:ssh_key:updated",
      "method": "onUserSshKeyUpdated",
      "category": "User",
      "callback": "string user uuid, string ssh key id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:ssh_key:deleted",
      "method": "onUserSshKeyDeleted",
      "category": "User",
      "callback": "string user uuid, string ssh key id.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:user:created",
      "method": "onUserCreated",
      "category": "User",
      "callback": "array user data, int user id, array created by.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "user",
        "user_id",
        "uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PterodactylImporterController.php",
        "backend/app/Controllers/Admin/UsersController.php"
      ]
    },
    {
      "name": "featherpanel:user:updated",
      "method": "onUserUpdated",
      "category": "User",
      "callback": "array user data, array updated data, array updated by.",
      "emitted": true,
      "data_keys": [
        "ban_reason",
        "mail_verify",
        "updated_by",
        "updated_data",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/UsersController.php"
      ]
    },
    {
      "name": "featherpanel:user:deleted",
      "method": "onUserDeleted",
      "category": "User",
      "callback": "array user data, array deleted by.",
      "emitted": true,
      "data_keys": [
        "deleted_by",
        "user"
      ],
      "source_files": [
        "backend/app/Services/User/UserDeletionService.php"
      ]
    },
    {
      "name": "featherpanel:user:ssh_key:created",
      "method": "onUserSshKeyCreated",
      "category": "UserSshKey",
      "callback": "array ssh_key data.",
      "emitted": true,
      "data_keys": [
        "created_by",
        "ssh_key",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/PterodactylImporterController.php",
        "backend/app/Controllers/User/User/UserSshKeyController.php"
      ]
    },
    {
      "name": "featherpanel:user:ssh_key:updated",
      "method": "onUserSshKeyUpdated",
      "category": "UserSshKey",
      "callback": "int ssh_key id, array updated data.",
      "emitted": true,
      "data_keys": [
        "action",
        "ssh_key",
        "updated_data",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/UserSshKeyController.php"
      ]
    },
    {
      "name": "featherpanel:user:ssh_key:deleted",
      "method": "onUserSshKeyDeleted",
      "category": "UserSshKey",
      "callback": "int ssh_key id, array ssh_key data.",
      "emitted": true,
      "data_keys": [
        "action",
        "ssh_key",
        "user_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/User/User/UserSshKeyController.php"
      ]
    },
    {
      "name": "featherpanel:user:ssh_key:error",
      "method": "onUserSshKeyError",
      "category": "UserSshKey",
      "callback": "string error message, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:vds:created",
      "method": "onVdsCreated",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "creation_id",
        "source",
        "template_id",
        "user_uuid",
        "vds_id",
        "vm_node_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:updated",
      "method": "onVdsUpdated",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array changed fields, array context.",
      "emitted": true,
      "data_keys": [
        "changed_fields",
        "context",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:deleted",
      "method": "onVdsDeleted",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "hard_delete",
        "queued",
        "reason",
        "source",
        "task_id",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:power:action",
      "method": "onVdsPowerAction",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, string action, string task id, array context.",
      "emitted": true,
      "data_keys": [
        "action",
        "context",
        "source",
        "task_id",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php",
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php",
        "backend/app/Services/Chatbot/Tools/Vds/VdsPowerActionTool.php"
      ]
    },
    {
      "name": "featherpanel:vds:reinstall",
      "method": "onVdsReinstalled",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, string reinstall id, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "reinstall_id",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php",
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php"
      ]
    },
    {
      "name": "featherpanel:vds:suspended",
      "method": "onVdsSuspended",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:unsuspended",
      "method": "onVdsUnsuspended",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:backup:create",
      "method": "onVdsBackupCreated",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, string backup id, array context.",
      "emitted": true,
      "data_keys": [
        "backup_id",
        "context",
        "source",
        "storage",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php",
        "backend/app/Controllers/User/Vds/VmUserBackupController.php",
        "backend/app/Services/Chatbot/Tools/Vds/CreateVdsBackupTool.php"
      ]
    },
    {
      "name": "featherpanel:vds:backup:delete",
      "method": "onVdsBackupDeleted",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, string volid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "storage",
        "user_uuid",
        "vds_id",
        "vmid",
        "volid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php",
        "backend/app/Controllers/User/Vds/VmUserBackupController.php"
      ]
    },
    {
      "name": "featherpanel:vds:backup:restore",
      "method": "onVdsBackupRestored",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, string restore id, string volid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "restore_id",
        "source",
        "storage",
        "user_uuid",
        "vds_id",
        "vmid",
        "volid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php",
        "backend/app/Controllers/User/Vds/VmUserBackupController.php"
      ]
    },
    {
      "name": "featherpanel:vds:subuser:create",
      "method": "onVdsSubuserCreated",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, int subuser id, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "subuser_id",
        "target_user_id",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Vds/VmUserSubuserController.php"
      ]
    },
    {
      "name": "featherpanel:vds:subuser:delete",
      "method": "onVdsSubuserDeleted",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, int subuser id, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "subuser_id",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Vds/VmUserSubuserController.php"
      ]
    },
    {
      "name": "featherpanel:vds:network:update",
      "method": "onVdsNetworkUpdated",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array dns/network payload, array context.",
      "emitted": true,
      "data_keys": [
        "changes",
        "context",
        "nameserver",
        "searchdomain",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php"
      ]
    },
    {
      "name": "featherpanel:vds:qemu:hardware:update",
      "method": "onVdsQemuHardwareUpdated",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array qemu payload, array context.",
      "emitted": true,
      "data_keys": [
        "bios",
        "changes",
        "context",
        "efi_enabled",
        "serial0_enabled",
        "source",
        "tpm_enabled",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php"
      ]
    },
    {
      "name": "featherpanel:vds:iso:mount",
      "method": "onVdsIsoMounted",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, string volid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "method",
        "source",
        "storage",
        "task_id",
        "user_uuid",
        "vds_id",
        "vmid",
        "volid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php"
      ]
    },
    {
      "name": "featherpanel:vds:iso:unmount",
      "method": "onVdsIsoUnmounted",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php"
      ]
    },
    {
      "name": "featherpanel:vds:console:access",
      "method": "onVdsConsoleAccessed",
      "category": "Vds",
      "callback": "string|null user uuid, int vds instance id, int vmid, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "vds_id",
        "vmid"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmInstancesController.php",
        "backend/app/Controllers/User/Vds/VmUserInstanceController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:create",
      "method": "onVdsNodeCreated",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, array node payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "vm_node",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:update",
      "method": "onVdsNodeUpdated",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, array node payload, array changed fields, array context.",
      "emitted": true,
      "data_keys": [
        "changed_fields",
        "context",
        "source",
        "user_uuid",
        "vm_node",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:delete",
      "method": "onVdsNodeDeleted",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, array node payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "vm_node",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:ip:create",
      "method": "onVdsNodeIpCreated",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, int ip id, array ip payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "ip",
        "ip_id",
        "source",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:ip:update",
      "method": "onVdsNodeIpUpdated",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, int ip id, array ip payload, array changed fields, array context.",
      "emitted": true,
      "data_keys": [
        "changed_fields",
        "context",
        "ip",
        "ip_id",
        "source",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:ip:delete",
      "method": "onVdsNodeIpDeleted",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, int ip id, array ip payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "ip",
        "ip_id",
        "source",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:node:ip:primary",
      "method": "onVdsNodeIpPrimarySet",
      "category": "VdsNode",
      "callback": "string|null user uuid, int vm node id, int ip id, array ip payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "ip",
        "ip_id",
        "source",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:template:create",
      "method": "onVdsTemplateCreated",
      "category": "VdsNode",
      "callback": "string|null user uuid, int template id, int vm node id, array template payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "template",
        "template_id",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:template:update",
      "method": "onVdsTemplateUpdated",
      "category": "VdsNode",
      "callback": "string|null user uuid, int template id, int vm node id, array template payload, array changed fields, array context.",
      "emitted": true,
      "data_keys": [
        "changed_fields",
        "context",
        "source",
        "template",
        "template_id",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:vds:template:delete",
      "method": "onVdsTemplateDeleted",
      "category": "VdsNode",
      "callback": "string|null user uuid, int template id, int vm node id, array template payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "template",
        "template_id",
        "user_uuid",
        "vm_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/VmNodesController.php"
      ]
    },
    {
      "name": "featherpanel:web:node:create",
      "method": "onWebNodeCreated",
      "category": "WebNode",
      "callback": "string|null user uuid, int web node id, array node payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "web_node",
        "web_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebNodesController.php"
      ]
    },
    {
      "name": "featherpanel:web:node:update",
      "method": "onWebNodeUpdated",
      "category": "WebNode",
      "callback": "string|null user uuid, int web node id, array node payload, array changed fields, array context.",
      "emitted": true,
      "data_keys": [
        "changed_fields",
        "context",
        "source",
        "user_uuid",
        "web_node",
        "web_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebNodesController.php"
      ]
    },
    {
      "name": "featherpanel:web:node:delete",
      "method": "onWebNodeDeleted",
      "category": "WebNode",
      "callback": "string|null user uuid, int web node id, array node payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "web_node",
        "web_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebNodesController.php"
      ]
    },
    {
      "name": "featherpanel:web:node:key:reset",
      "method": "onWebNodeKeyReset",
      "category": "WebNode",
      "callback": "string|null user uuid, int web node id, array node payload, array context.",
      "emitted": true,
      "data_keys": [
        "context",
        "source",
        "user_uuid",
        "web_node",
        "web_node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebNodesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:web_plates:plate:created",
      "method": "onWebPlateCreated",
      "category": "WebPlates",
      "callback": "array plate data.",
      "emitted": true,
      "data_keys": [
        "webplate"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebPlatesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:web_plates:plate:updated",
      "method": "onWebPlateUpdated",
      "category": "WebPlates",
      "callback": "int plate id, array plate data.",
      "emitted": true,
      "data_keys": [
        "webplate",
        "webplate_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebPlatesController.php"
      ]
    },
    {
      "name": "featherpanel:admin:web_plates:plate:deleted",
      "method": "onWebPlateDeleted",
      "category": "WebPlates",
      "callback": "int plate id, array plate data.",
      "emitted": true,
      "data_keys": [
        "webplate_id"
      ],
      "source_files": [
        "backend/app/Controllers/Admin/WebPlatesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:created",
      "method": "onWebSpaceCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array webspace, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:updated",
      "method": "onWebSpaceUpdated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array changed fields, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php",
        "backend/app/Controllers/User/WebSpaces/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:deleted",
      "method": "onWebSpaceDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:suspended",
      "method": "onWebSpaceSuspended",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:unsuspended",
      "method": "onWebSpaceUnsuspended",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:reinstall",
      "method": "onWebSpaceReinstalled",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:backup:create",
      "method": "onWebSpaceBackupCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string|null backup uuid, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:backup:delete",
      "method": "onWebSpaceBackupDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string backup uuid, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:backup:restore",
      "method": "onWebSpaceBackupRestored",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string backup uuid, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpacesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:subuser:create",
      "method": "onWebSpaceSubuserCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int subuser id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSubuserController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:subuser:update",
      "method": "onWebSpaceSubuserUpdated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int subuser id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSubuserController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:subuser:delete",
      "method": "onWebSpaceSubuserDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int subuser id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSubuserController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:database:create",
      "method": "onWebSpaceDatabaseCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int database id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceDatabaseController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:database:delete",
      "method": "onWebSpaceDatabaseDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int database id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceDatabaseController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:schedule:create",
      "method": "onWebSpaceScheduleCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int schedule id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:schedule:update",
      "method": "onWebSpaceScheduleUpdated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int schedule id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:schedule:delete",
      "method": "onWebSpaceScheduleDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int schedule id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceScheduleController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:mailbox:create",
      "method": "onWebSpaceMailboxCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int mailbox id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceMailboxController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:mailbox:delete",
      "method": "onWebSpaceMailboxDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int mailbox id, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceMailboxController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:directory:create",
      "method": "onWebSpaceDirectoryCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string path, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceFilesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:files:delete",
      "method": "onWebSpaceFilesDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array paths, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceFilesController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:console:access",
      "method": "onWebSpaceConsoleAccessed",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array context.",
      "emitted": false,
      "data_keys": [],
      "source_files": []
    },
    {
      "name": "featherpanel:webspace:dns:zone:linked",
      "method": "onWebSpaceDnsZoneLinked",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array zone.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpaceDnsController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:dns:zone:unlinked",
      "method": "onWebSpaceDnsZoneUnlinked",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int zone id.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpaceDnsController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:dns:record:created",
      "method": "onWebSpaceDnsRecordCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array record.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpaceDnsController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:dns:record:updated",
      "method": "onWebSpaceDnsRecordUpdated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array record.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpaceDnsController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:dns:record:deleted",
      "method": "onWebSpaceDnsRecordDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string record id.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/Admin/WebSpaceDnsController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:sftp:account:created",
      "method": "onWebSpaceSftpAccountCreated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array account.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSftpAccountController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:sftp:account:updated",
      "method": "onWebSpaceSftpAccountUpdated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, array account.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSftpAccountController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:sftp:account:deleted",
      "method": "onWebSpaceSftpAccountDeleted",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int account id.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSftpAccountController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:sftp:password:reset",
      "method": "onWebSpaceSftpPasswordReset",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, int account id.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceSftpAccountController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:app:installed",
      "method": "onWebSpaceAppInstalled",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string app, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceAppsController.php"
      ]
    },
    {
      "name": "featherpanel:webspace:app:updated",
      "method": "onWebSpaceAppUpdated",
      "category": "WebSpace",
      "callback": "string|null user uuid, string webspace uuid, string uuid_short, string app, array context.",
      "emitted": true,
      "data_keys": [],
      "source_files": [
        "backend/app/Controllers/User/WebSpaces/WebSpaceAppsController.php"
      ]
    },
    {
      "name": "featherpanel:wings:node:utilization:retrieved",
      "method": "onWingsNodeUtilizationRetrieved",
      "category": "Wings",
      "callback": "int node id, array utilization data.",
      "emitted": true,
      "data_keys": [
        "node",
        "node_id",
        "utilization"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsAdminController.php"
      ]
    },
    {
      "name": "featherpanel:wings:docker:disk:usage:retrieved",
      "method": "onWingsDockerDiskUsageRetrieved",
      "category": "Wings",
      "callback": "int node id, array disk usage data.",
      "emitted": true,
      "data_keys": [
        "docker_disk_usage",
        "node",
        "node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsAdminController.php"
      ]
    },
    {
      "name": "featherpanel:wings:docker:prune:completed",
      "method": "onWingsDockerPruneCompleted",
      "category": "Wings",
      "callback": "int node id, array prune results.",
      "emitted": true,
      "data_keys": [
        "docker_prune",
        "node",
        "node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsAdminController.php"
      ]
    },
    {
      "name": "featherpanel:wings:node:ips:retrieved",
      "method": "onWingsNodeIpsRetrieved",
      "category": "Wings",
      "callback": "int node id, array ip addresses.",
      "emitted": true,
      "data_keys": [
        "ips",
        "node",
        "node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsAdminController.php"
      ]
    },
    {
      "name": "featherpanel:wings:node:system:info:retrieved",
      "method": "onWingsNodeSystemInfoRetrieved",
      "category": "Wings",
      "callback": "int node id, array system info.",
      "emitted": true,
      "data_keys": [
        "node",
        "node_id",
        "system_info"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsAdminController.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:info:retrieved",
      "method": "onWingsServerInfoRetrieved",
      "category": "Wings",
      "callback": "string server uuid, array server info.",
      "emitted": true,
      "data_keys": [
        "allocation",
        "node",
        "realm",
        "server",
        "server_uuid",
        "spell"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerInfoController.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:install:retrieved",
      "method": "onWingsServerInstallRetrieved",
      "category": "Wings",
      "callback": "string server uuid, array install data.",
      "emitted": true,
      "data_keys": [
        "install_config",
        "node",
        "server",
        "server_uuid",
        "spell"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerInstallController.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:install:completed",
      "method": "onWingsServerInstallCompleted",
      "category": "Wings",
      "callback": "string server uuid, array install results.",
      "emitted": true,
      "data_keys": [
        "installed_at",
        "node",
        "reinstall",
        "server",
        "server_uuid",
        "status",
        "successful"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerInstallController.php"
      ]
    },
    {
      "name": "featherpanel:wings:servers:remote:retrieved",
      "method": "onWingsRemoteServersRetrieved",
      "category": "Wings",
      "callback": "array servers list.",
      "emitted": true,
      "data_keys": [
        "node",
        "pagination",
        "servers",
        "total"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerListController.php"
      ]
    },
    {
      "name": "featherpanel:wings:servers:reset:completed",
      "method": "onWingsServersResetCompleted",
      "category": "Wings",
      "callback": "array reset results.",
      "emitted": true,
      "data_keys": [
        "node",
        "queued_auto_starts",
        "reset_result"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServersResetController.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:status:updated",
      "method": "onWingsServerStatusUpdated",
      "category": "Wings",
      "callback": "string server uuid, array status data.",
      "emitted": true,
      "data_keys": [
        "new_state",
        "node",
        "old_state",
        "server",
        "server_uuid",
        "update_data"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerStatusController.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:status:retrieved",
      "method": "onWingsServerStatusRetrieved",
      "category": "Wings",
      "callback": "string server uuid, array status data.",
      "emitted": true,
      "data_keys": [
        "node",
        "server",
        "server_uuid",
        "state"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerStatusController.php"
      ]
    },
    {
      "name": "featherpanel:wings:backup:upload:info:retrieved",
      "method": "onWingsBackupUploadInfoRetrieved",
      "category": "Wings",
      "callback": "string backup uuid, array upload info.",
      "emitted": true,
      "data_keys": [
        "backup",
        "backup_uuid",
        "node",
        "part_size",
        "parts",
        "server",
        "total_size",
        "upload_info"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Backup/WingsBackupController.php"
      ]
    },
    {
      "name": "featherpanel:wings:backup:completion:reported",
      "method": "onWingsBackupCompletionReported",
      "category": "Wings",
      "callback": "string backup uuid, array completion data.",
      "emitted": true,
      "data_keys": [
        "backup",
        "backup_uuid",
        "completion_data",
        "node",
        "server"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Backup/WingsBackupController.php"
      ]
    },
    {
      "name": "featherpanel:wings:backup:restoration:reported",
      "method": "onWingsBackupRestorationReported",
      "category": "Wings",
      "callback": "string backup uuid, array restoration data.",
      "emitted": true,
      "data_keys": [
        "backup",
        "backup_uuid",
        "node",
        "restoration_data",
        "server"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Backup/WingsBackupController.php"
      ]
    },
    {
      "name": "featherpanel:wings:activity:logged",
      "method": "onWingsActivityLogged",
      "category": "Wings",
      "callback": "array activity data.",
      "emitted": true,
      "data_keys": [
        "activities",
        "error_count",
        "errors",
        "node",
        "processed_count"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Activity/WingsActivityController.php"
      ]
    },
    {
      "name": "featherpanel:wings:sftp:authentication",
      "method": "onWingsSftpAuthentication",
      "category": "Wings",
      "callback": "array auth data.",
      "emitted": true,
      "data_keys": [
        "auth_type",
        "client_version",
        "ip",
        "permissions",
        "server",
        "session_id",
        "user"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Sftp/SftpAuthController.php"
      ]
    },
    {
      "name": "featherpanel:wings:error",
      "method": "onWingsError",
      "category": "Wings",
      "callback": "string error message, array context.",
      "emitted": true,
      "data_keys": [
        "error",
        "message",
        "server_uuid",
        "token_id"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerInfoController.php",
        "backend/app/Middleware/WingsMiddleware.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:error",
      "method": "onWingsServerError",
      "category": "Wings",
      "callback": "string server uuid, string error message.",
      "emitted": true,
      "data_keys": [
        "error",
        "server_uuid"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerInfoController.php"
      ]
    },
    {
      "name": "featherpanel:wings:node:error",
      "method": "onWingsNodeError",
      "category": "Wings",
      "callback": "int node id, string error message.",
      "emitted": true,
      "data_keys": [
        "error",
        "node_id"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsHealthController.php"
      ]
    },
    {
      "name": "featherpanel:wings:node:connection:status",
      "method": "onWingsNodeConnectionStatus",
      "category": "Wings",
      "callback": "int node id, string status.",
      "emitted": true,
      "data_keys": [
        "node_id",
        "status",
        "token_id"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/WingsHealthController.php",
        "backend/app/Middleware/WingsMiddleware.php"
      ]
    },
    {
      "name": "featherpanel:wings:server:connection:status",
      "method": "onWingsServerConnectionStatus",
      "category": "Wings",
      "callback": "string server uuid, string status.",
      "emitted": true,
      "data_keys": [
        "node_id",
        "server_uuid",
        "status"
      ],
      "source_files": [
        "backend/app/Controllers/Wings/Server/WingsServerStatusController.php"
      ]
    }
  ]
}
