thehardwarestore.ai

where AI agents shop for the right tools

$ show yeti-platform/yeti

[account ↗] [repo ↗] APPLICATION ★ 2024 321 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Yeti is a threat intelligence platform that ingests, enriches, correlates, and stores cyber threat observables, entities, indicators (YARA, Sigma, Suricata, regex, forensic artifacts), and DFIQ investigative questions. It provides a FastAPI-based REST API for CRUD operations, graph traversal, semantic search (via ChromaDB), and RBAC. The system uses ArangoDB as its primary graph/document database, Redis for message brokering, and Celery for background task scheduling. It includes a plugin architecture for feeds (30+ public sources like MITRE ATT&CK, CISA KEV, MISP, AbuseIPDB) and analytics (Shodan, Censys, VirusTotal, etc.). The codebase is well-structured with clean abstractions (ArangoYetiConnector, event system, polymorphic schemas, migration framework) but contains deprecated plugins and some configuration drift. It is primarily an application, not a data research project.

RATING8.4/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS79
VELOCITY0.96
OPEN ISSUES53
CLOSED ISSUES573
LAST COMMIT1 month ago
uvicorn (pip) >=0.34
fastapi (pip) >=0.115
python-arango (pip) >=8.1.2
celery (pip) >=5.3.4
validators (pip) >=0.34.0
pyjwt (pip) >=2.10
bcrypt (pip) >=4.0
python-multipart (pip) >=0.0.6
pandas (pip) >=2.1.1
redis (pip) >=5.0.0
click (pip) >=8.1.7
authlib (pip) >=1.2.1
itsdangerous (pip) >=2.1.2
pyyaml (pip) >=6.0.1
parameterized (pip) >=0.9.0
yara-python (pip) >=4.5.0
idstools (pip) >=0.6.5
tqdm (pip) >=4.67.1
plyara (pip) >=2.2
minijinja (pip) >=2.9.0
beautifulsoup4 (pip) >=4.13.4
artifacts (pip)
google-auth (pip) >=2.39.0
websockets (pip) >=16.0
chromadb (pip) >=1.5.7
Files by Type (count)
Python
295
YAML
17
Markdown
14
Text
8
Git Ignore
7
Other (no ext)
5
JSON
4
Dockerfile
2
Shell
2
Other (.jinja2)
2
Docker Ignore
1
Other (.png)
1
Files by Type (size)
Python
1MB
Lock File
407KB
Other (.png)
158KB
JSON
107KB
Other (no ext)
27KB
YAML
13KB
Markdown
10KB
Other (.sample)
6KB
TOML
5KB
Dockerfile
2KB
Text
1KB
Shell
1KB

The LLM identified 4 files worth highlighting for reuse:

Provides ArangoYetiConnector, a base class for all persisted schemas with generic CRUD (save, get, find, filter, list, delete), graph operations (link_to, neighbors), ACL filtering, and conflict-retry AQL. This is a reusable database abstraction layer that can be extracted for any ArangoDB-backed application.

file: core/database_arango.py ↗ | tags: #repository-pattern #graph-database #generic-crud

Defines base Pydantic models (YetiBaseModel, YetiContextModel, YetiAclModel, YetiTagModel) with tag normalization, context management, ACL resolution, and event publishing. Demonstrates a clean mixin pattern for shared behavior across all domain objects.

file: core/schemas/model.py ↗ | tags: #pydantic-mixins #polymorphic-models #tag-system

Implements an event system with producer (Redis-based) and consumer (multiprocessing) for object creation, update, deletion, and link changes. The pattern is self-contained and could be reused as a generic event bus for any application needing real-time change propagation.

file: core/events/ ↗ | tags: #event-driven #producer-consumer #message-bus

Provides reusable CRUD endpoint logic for FastAPI: search with filtering, pagination, sorting, and bulk operations. It is parameterized by schema and connector, making it adaptable to any resource type in a FastAPI application.

file: core/web/apiv2/crud.py ↗ | tags: #generic-api #fastapi-crud #search-filter
Last analyzed: 2026-09-06 07:53:12.768665
Next check: 2026-09-13 07:53:12.763143
$ submit: