Claude 24f816b6a3
Consolidate 22 sibling repos into layered organism structure
Place useful parts of the surrounding repos into sica-fondt by layer, per the
body model (Ada = membrane; brain/endocrine/capabilities/knowledge non-Ada):

- brain/        LLM reasoning + providers (dapr, hermes, MoMoA)
- capabilities/ REPRAG sidecars: hermes tools/skills, dapr tools, parallel
                dispatch, A51 channels, and the OSINT cluster
- knowledge/    LORAG corpus: 754 cyber-skills, agency personas, secure-coding,
                MITRE ATT&CK data
- reference/    defensive threat-reference (C3, shhbruh doc) + AdaYaml parser

License handling: AGPL sources (worldosint, advanced_evolution, mercury,
Reticulum) and GPL DeTTECT are SPEC-only clean-room/port descriptions — no
copyleft code copied. MIT/Apache/data parts copied as working trees.

Safety: shhbruh escape/persistence material and C3 covert-C2 kept as reference
only, not wired into the running organism. See CONSOLIDATION.md.

https://claude.ai/code/session_01UehUqEXXJJCsHoA4voCU5c
2026-06-10 06:53:01 +00:00

81 lines
2.1 KiB
Markdown

# API Reference: Incident Timeline Building with Timesketch
## Authentication
```
POST /login/
Content-Type: application/x-www-form-urlencoded
Body: username=USER&password=PASS
```
## Sketch Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/api/v1/sketches/` | List all sketches |
| POST | `/api/v1/sketches/` | Create new sketch |
| GET | `/api/v1/sketches/{id}/` | Get sketch details |
| DELETE | `/api/v1/sketches/{id}/` | Delete sketch |
## Timeline Upload
```
POST /api/v1/upload/
Content-Type: multipart/form-data
Fields: name, sketch_id, file (Plaso/CSV/JSONL)
```
## Event Search (Explore)
```
POST /api/v1/sketches/{id}/explore/
{
"query": "source_short:EVT AND message:*logon*",
"limit": 500,
"fields": ["datetime", "timestamp_desc", "message", "source_short"],
"filter": {
"chips": [
{"type": "datetime_range", "value": "2024-01-01T00:00:00,2024-01-31T23:59:59", "active": true}
]
}
}
```
## Event Annotation
```
POST /api/v1/sketches/{id}/event/annotate/
{
"annotation": "suspicious,lateral-movement",
"annotation_type": "tag",
"events": {"event_id": "abc123"}
}
```
## Supported Timeline Formats
| Format | Extension | Description |
|--------|-----------|-------------|
| Plaso | `.plaso` | log2timeline output |
| CSV | `.csv` | Timesketch CSV (datetime, message, timestamp_desc) |
| JSONL | `.jsonl` | One JSON event per line |
## Event Fields
| Field | Description |
|-------|-------------|
| `datetime` | Event timestamp (ISO 8601) |
| `timestamp_desc` | Timestamp meaning (e.g., "Creation Time") |
| `message` | Human-readable event description |
| `source_short` | Source type (EVT, FILE, LOG, REG) |
| `source_long` | Full source name |
## Analyzers
```
POST /api/v1/sketches/{id}/analyzer/
{"analyzer_names": ["domain", "similarity_scorer", "tagger"]}
```
## Python Client
```python
from timesketch_api_client import config as ts_config
from timesketch_api_client import client as ts_client
ts = ts_client.TimesketchApi(host, username, password)
sketch = ts.get_sketch(sketch_id)
results = sketch.explore(query="*", return_fields="datetime,message")
```