Spaces:
Sleeping
Sleeping
| """ | |
| Bastion: Cybersecurity Incident Response — Server Entry Point | |
| """ | |
| import sys | |
| import os | |
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from openenv.core.env_server import create_app | |
| from models import IncidentAction, IncidentObservation | |
| from environment import BastionEnvironment | |
| app = create_app( | |
| env=BastionEnvironment, | |
| action_cls=IncidentAction, | |
| observation_cls=IncidentObservation, | |
| env_name="bastion", | |
| ) | |
| def root(): | |
| return { | |
| "name": "Bastion", | |
| "description": "Cybersecurity Incident Response RL Environment", | |
| "endpoints": { | |
| "health": "GET /health", | |
| "schema": "GET /schema", | |
| "reset": "POST /reset {task_id: easy_1|medium_1|hard_1}", | |
| "step": "POST /step {action: 0-9, target_system: 0-7}", | |
| "state": "GET /state", | |
| "websocket": "WS /ws", | |
| }, | |
| "tasks": ["easy_1 (Script Kiddie)", "medium_1 (Ransomware)", "hard_1 (APT)"], | |
| "status": "running", | |
| } | |
| def main() -> None: | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=7860) | |
| if __name__ == "__main__": | |
| main() | |