- Implemented CrowdSec configuration page with import/export capabilities. - Added API endpoints for exporting, importing, listing, reading, and writing CrowdSec configuration files. - Enhanced security handler to support runtime overrides for CrowdSec mode and API URL. - Updated frontend components to include CrowdSec settings in the UI. - Added tests for CrowdSec configuration management and security handler behavior. - Improved user experience with toast notifications for successful operations and error handling.
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import client from './client'
|
|
|
|
export async function startCrowdsec() {
|
|
const resp = await client.post('/admin/crowdsec/start')
|
|
return resp.data
|
|
}
|
|
|
|
export async function stopCrowdsec() {
|
|
const resp = await client.post('/admin/crowdsec/stop')
|
|
return resp.data
|
|
}
|
|
|
|
export async function statusCrowdsec() {
|
|
const resp = await client.get('/admin/crowdsec/status')
|
|
return resp.data
|
|
}
|
|
|
|
export async function importCrowdsecConfig(file: File) {
|
|
const fd = new FormData()
|
|
fd.append('file', file)
|
|
const resp = await client.post('/admin/crowdsec/import', fd, {
|
|
headers: { 'Content-Type': 'multipart/form-data' },
|
|
})
|
|
return resp.data
|
|
}
|
|
|
|
export async function exportCrowdsecConfig() {
|
|
const resp = await client.get('/admin/crowdsec/export', { responseType: 'blob' })
|
|
return resp.data
|
|
}
|
|
|
|
export async function listCrowdsecFiles() {
|
|
const resp = await client.get<{ files: string[] }>('/admin/crowdsec/files')
|
|
return resp.data
|
|
}
|
|
|
|
export async function readCrowdsecFile(path: string) {
|
|
const resp = await client.get<{ content: string }>(`/admin/crowdsec/file?path=${encodeURIComponent(path)}`)
|
|
return resp.data
|
|
}
|
|
|
|
export async function writeCrowdsecFile(path: string, content: string) {
|
|
const resp = await client.post('/admin/crowdsec/file', { path, content })
|
|
return resp.data
|
|
}
|
|
|
|
export default { startCrowdsec, stopCrowdsec, statusCrowdsec, importCrowdsecConfig, exportCrowdsecConfig, listCrowdsecFiles, readCrowdsecFile, writeCrowdsecFile }
|