5.7 KiB
Enrichment API
Version: 0.1.0
API for file enrichment services
This documentation is automatically generated from the OpenAPI specification.
Enrichments
GET /enrichments
List enrichment modules
Get a list of all available enrichment modules
Returns: 200 on success
POST /enrichments/{enrichment_name}
Run enrichment module
Run a specific enrichment module on a file
Parameters:
enrichment_name(string, required): Name of the enrichment module to run
Request Body: EnrichmentRequest (JSON)
Returns: 200 on success
POST /enrichments/{enrichment_name}/bulk
Start bulk enrichment
Start bulk enrichment for a specific module against all files in the system using distributed processing
Parameters:
enrichment_name(string, required): Name of the enrichment module to run
Returns: 200 on success
GET /enrichments/{enrichment_name}/bulk/status
Get bulk enrichment status
Bulk enrichment status tracking has been simplified
Parameters:
enrichment_name(string, required): Name of the enrichment module to check status for
Returns: 200 on success
POST /enrichments/{enrichment_name}/bulk/stop
Stop bulk enrichment
Bulk enrichment cannot be stopped once tasks are published
Parameters:
enrichment_name(string, required): Name of the enrichment module to stop
Returns: 200 on success
Files
POST /containers
Submit large container file for processing with optional filtering
...
Request Body: See OpenAPI spec for details
Returns: 200 on success
GET /containers/{container_id}/status
Get container processing status
Get the current processing status and progress of a submitted container
Parameters:
container_id(string, required): Unique identifier of the container
Returns: 200 on success
POST /files
Upload file with metadata
Upload a file using multipart/form-data with metadata. Returns an object_id for the uploaded file and submission_id for the metadata submission.
Example:
```
curl -k -u n:n -F "file=@example.txt" -F 'metadata={"agent_id":"agent123","project":"proj1","timestamp":"2024-01-29T12:00:00Z","expiration":"2024-02-29T12:00:00Z","path":"/tmp/example.txt"}' https://nemesis:7443/api/files
```
Example:
```
curl -k -u n:n -F "file=@example.txt" -F 'metadata={"agent_id":"agent123","project":"proj1","path":"/tmp/example.txt"}' https://nemesis:7443/api/files
```
Request Body: See OpenAPI spec for details
Returns: 200 on success
GET /files/{object_id}
Download a file
Download a file by its object ID with optional raw format and custom filename
Parameters:
object_id(string, required): Unique identifier of the file to downloadraw(boolean, optional): Whether to return the file in raw formatname(string, optional): Custom filename for the downloaded file
Returns: 200 on success
Queues
GET /queues
Get queue statistics
Get comprehensive queue metrics for all workflow topics
Returns: 200 on success
GET /queues/{queue_name}
Get single queue statistics
Get metrics for a specific queue topic
Parameters:
queue_name(string, required): Name of the queue to get metrics for
Returns: 200 on success
System
GET /agents
Get available agents
Get a list of available AI agents with their metadata and capabilities
Returns: 200 on success
POST /agents/dotnet_analysis
Run .NET assembly analysis
Forward .NET assembly analysis request to agents service
Request Body: JSON object
Returns: 200 on success
POST /agents/llm_credential_analysis
Run credential analysis
Forward credential analysis request to agents service
Request Body: JSON object
Returns: 200 on success
GET /agents/spend-data
Get LLM spend and usage data
Get total spend and token usage statistics from LiteLLM logs
Returns: 200 on success
POST /agents/text_summarizer
Run text summarization
Forward text summarization request to agents service
Request Body: JSON object
Returns: 200 on success
GET /system/apprise-info
Get Apprise alert information
Get information about configured alert channels (currently Slack only)
Returns: 200 on success
GET /system/available-services
Get available services
Query Traefik to determine which optional services are currently available
Returns: 200 on success
POST /system/cleanup
Trigger database and datalake cleanup
Trigger the housekeeping service to clean up expired files and database entries, and reset the workflow manager state. Optionally specify an expiration date or 'all' to remove all files.
Request Body: CleanupRequest (JSON)
Returns: 200 on success
GET /system/container-monitor/status
Container monitor status
Get the status of the container file monitor
Returns: 200 on success
GET /system/health
Health check
Health check endpoint for Docker healthcheck
Returns: 200 on success
GET /system/info
API information
Root endpoint that shows API information
Returns: 200 on success
POST /system/yara/reload
Reload Yara rules
Trigger a reload of all Yara rules in the backend across all workers/replicas
Returns: 200 on success
Workflows
GET /workflows/failed
Get failed workflows
Get the set of failed enrichment workflows
Returns: 200 on success
GET /workflows/status
Get workflow enrichment workflow status
Get the current status of the enrichment workflow system
Returns: 200 on success