Skip to main content
Glama

create_backup

Generate a configuration backup for OPNSense firewalls, allowing users to save and restore settings. Ideal for maintaining network reliability and ensuring system integrity during changes.

Instructions

Create a configuration backup

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
descriptionNoBackup description

Implementation Reference

  • Input options schema for the createBackup function defining optional backup parameters.
    export interface BackupOptions { description?: string; compress?: boolean; includeRRD?: boolean; includeCaptivePortal?: boolean; }
  • Main handler function that executes the backup creation: generates ID, downloads config from OPNsense, creates metadata, logs, saves metadata and file, returns BackupInfo.
    async createBackup(options: BackupOptions = {}): Promise<BackupInfo> { try { // Generate backup ID const timestamp = new Date(); const id = `backup-${timestamp.toISOString().replace(/[:.]/g, '-')}`; // Download configuration const config = await this.downloadConfig(); // Create backup info const backupInfo: BackupInfo = { id, filename: `${id}.xml`, timestamp, description: options.description || `Automated backup before API operation`, size: config.length }; // Log backup creation console.log(`Created backup: ${backupInfo.id}`); // Store backup metadata (in production, save to database) await this.saveBackupMetadata(backupInfo); // Store backup file (in production, save to TrueNAS or local storage) await this.saveBackupFile(backupInfo.filename, config); return backupInfo; } catch (error: any) { throw new Error(`Failed to create backup: ${error.message}`); } }
  • Output schema for backup information returned by createBackup.
    export interface BackupInfo { id: string; filename: string; timestamp: Date; size?: number; description?: string; checksum?: string; }
  • Helper method that creates a backup before executing an operation and returns the backup ID, useful for safe API operations.
    async withBackup<T>( operation: () => Promise<T>, description?: string ): Promise<{ result: T; backupId: string }> { // Create backup first const backup = await this.createBackup({ description }); try { // Execute operation const result = await operation(); return { result, backupId: backup.id }; } catch (error) { console.error(`Operation failed. Backup available: ${backup.id}`); throw error; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vespo92/OPNSenseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server