Files
osmedeus/docs/api/artifacts.mdx
T

117 lines
2.8 KiB
Plaintext

---
title: "Artifacts"
description: "List and download output artifacts from workflow runs"
---
# Artifacts
## List Artifacts
Get a paginated list of all artifacts across workspaces.
```bash
curl http://localhost:8002/osm/api/artifacts \
-H "Authorization: Bearer $TOKEN"
```
**With pagination:**
```bash
curl "http://localhost:8002/osm/api/artifacts?offset=0&limit=50" \
-H "Authorization: Bearer $TOKEN"
```
**Filter by workspace:**
```bash
curl "http://localhost:8002/osm/api/artifacts?workspace=example.com" \
-H "Authorization: Bearer $TOKEN"
```
**Query Parameters:**
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `workspace` | string | - | Filter by workspace name |
| `offset` | int | 0 | Pagination offset |
| `limit` | int | 20 | Maximum records to return |
**Response:**
```json
{
"data": [
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"run_id": 1,
"workspace": "example.com",
"name": "subdomains.txt",
"artifact_path": "/workspaces/example.com/subdomains.txt",
"artifact_type": "output",
"content_type": "txt",
"size_bytes": 4523,
"line_count": 150,
"description": "Discovered subdomains",
"created_at": "2025-01-15T10:01:45Z"
},
{
"id": "d4e5f6a7-b8c9-0123-def0-234567890123",
"run_id": 1,
"workspace": "example.com",
"name": "nuclei-results.json",
"artifact_path": "/workspaces/example.com/nuclei-results.json",
"artifact_type": "output",
"content_type": "json",
"size_bytes": 15234,
"line_count": 45,
"description": "Nuclei vulnerability scan results",
"created_at": "2025-01-15T10:15:00Z"
}
],
"pagination": {
"total": 100,
"offset": 0,
"limit": 20
}
}
```
---
## Download Workspace Artifact
Download all artifacts from a workspace as a zip file.
```bash
curl http://localhost:8002/osm/api/artifacts/example.com \
-H "Authorization: Bearer $TOKEN" \
--output example.com_artifacts.zip
```
**Response:**
- On success: Returns a zip file containing all artifacts
- Response headers include:
- `Content-Disposition: attachment; filename=<workspace>_artifacts.zip`
- `Content-Type: application/zip`
**Error Response (404):**
```json
{
"error": true,
"message": "Workspace not found: example.com"
}
```
---
## Artifact Types
| Type | Description |
|------|-------------|
| `report` | Generated reports from the workflow's reports section |
| `state_file` | State files like run-state.json, run-execution.log |
| `output` | General output files from steps |
| `screenshot` | Screenshots captured during the scan |
## Content Types
Detected content types based on file extension:
- `json`, `jsonl`, `yaml`, `html`, `md`, `log`, `pdf`, `png`, `txt`, `zip`, `folder`, `unknown`