feat: fully editable Settings page with service configs, backup/restore, export/import
- Rewrote Settings.jsx: Cell Identity editor, per-service config sections (network, wireguard, email, calendar, files, routing, vault) with collapsible cards, appropriate input types, and per-section Save buttons - Added Backup & Restore panel with create/restore/delete actions - Added Export (download JSON) and Import (upload JSON) panel - Added PUT /api/config identity field persistence (_identity key in cell_config.json) so cell_name/domain/ip_range/wireguard_port survive restarts - GET /api/config now returns service_configs separately and prefers stored identity - Added DELETE /api/config/backups/<id> endpoint - Extended cellAPI in api.js with createBackup, listBackups, restoreBackup, deleteBackup, exportConfig, importConfig Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,12 @@ export const cellAPI = {
|
||||
getStatus: () => api.get('/api/status'),
|
||||
getConfig: () => api.get('/api/config'),
|
||||
updateConfig: (config) => api.put('/api/config', config),
|
||||
createBackup: () => api.post('/api/config/backup'),
|
||||
listBackups: () => api.get('/api/config/backups'),
|
||||
restoreBackup: (id) => api.post(`/api/config/restore/${id}`),
|
||||
deleteBackup: (id) => api.delete(`/api/config/backups/${id}`),
|
||||
exportConfig: (format = 'json') => api.get('/api/config/export', { params: { format } }),
|
||||
importConfig: (config, format = 'json') => api.post('/api/config/import', { config, format }),
|
||||
};
|
||||
|
||||
// Network Services API
|
||||
|
||||
Reference in New Issue
Block a user