mirror of
https://github.com/SpecterOps/Nemesis
synced 2026-06-08 12:36:42 +00:00
5de5e23a30
Workflow Client Simplification: - Removed async_workflow_client.py - Removed taskhub_client.py - Renamed set_fastapi_loop to set_workflow_runtime_loop Workflow Purger Enhancement (+354 lines): - Added configurable timeout detection for workflows - Implemented database cursor streaming for batches - Parallelized Dapr purge operations Database Schema Changes: - Added TIMEOUT status to workflow enum Resource Management Refactor: - Use AsyncExitStack in lifespan function - Added cancel_task helper for graceful shutdowns - Registered cleanup callbacks for automatic teardown File Enrichment Controller: - Moved event loop setup before FastAPI - Extracted health endpoint to separate router Performance Improvements: - Changed DPAPI monitor interval: 5s to 30s - Implemented parallel workflow purge operations - Added DB cursor for workflow purging - Removed PID logging New Features: - Refactored timeout termination for workflows Configuration Updates: - MAX_PARALLEL_WORKFLOWS: 2 to 1 (debug) - WORKFLOW_CLIENT_LOG_LEVEL: INFO to DEBUG - Enhanced README debugging instructions for file enrichment - Disabled structlog timestamp processor Web API Changes: - Changed TERMINATED to TIMEOUT in queries - Updated reporting routes for new status Infrastructure: - Added jq and iputils-ping to dev Dockerfile
Naming Conventions
Projects and libraries should follow Python's PEP8 naming conventions:
Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.
When an extension module written in C or C++ has an accompanying Python module that provides a higher level (e.g. more object oriented) interface, the C/C++ module has a leading underscore (e.g. _socket).