Metadata-Version: 2.4
Name: iotsploit-django
Version: 0.0.9
Summary: IoTSploit Django ring package (HTTP/WS/ORM + composition root)
License: GPL-3.0-or-later
Keywords: iot,security,testing,pentest,django
Author: IoTSploit Team
Author-email: support@iotsploit.org
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Security
Classifier: Topic :: System :: Hardware
Provides-Extra: distributed
Provides-Extra: platforms
Requires-Dist: Django (>=4.2,<5.0)
Requires-Dist: SQLAlchemy (>=2.0)
Requires-Dist: aiohttp (>=3.9)
Requires-Dist: asgiref (>=3.7)
Requires-Dist: celery (>=5.3) ; extra == "distributed"
Requires-Dist: channels (>=4.0)
Requires-Dist: channels-redis (>=4.1) ; extra == "distributed"
Requires-Dist: colorlog (>=6.8)
Requires-Dist: cryptography (>=41.0)
Requires-Dist: daphne (>=4.0)
Requires-Dist: django-cors-headers (>=4.0)
Requires-Dist: django-csp (>=3.7,<4.0)
Requires-Dist: django-extensions (>=3.2)
Requires-Dist: iotsploit-core
Requires-Dist: iotsploit-platforms ; extra == "platforms"
Requires-Dist: iotsploit-priv
Requires-Dist: iotsploit-protocols
Requires-Dist: mistune (>=3.0)
Requires-Dist: paramiko (>=3.0)
Requires-Dist: psutil (>=5.9)
Requires-Dist: pydantic (>=2.0)
Requires-Dist: pyusb (>=1.2)
Requires-Dist: redis (>=5.0) ; extra == "distributed"
Requires-Dist: requests (>=2.31)
Project-URL: Documentation, https://www.iotsploit.org/
Project-URL: Homepage, https://www.iotsploit.org/
Project-URL: Repository, https://github.com/TKXB/iotsploit
Description-Content-Type: text/markdown

# iotsploit-django

`iotsploit-django` is IoTSploit's Django outer ring: HTTP/WebSocket APIs, ORM,
and composition of `iotsploit-core` and `iotsploit-fuzzer`.

Local mode is the default:

```bash
IOTSPLOIT_RUNTIME=local python -m daphne \
  -e tcp:8888:interface=127.0.0.1 \
  -e tcp:9999:interface=127.0.0.1 \
  iotsploit_django.asgi:application
```

It uses SQLite for durable execution and fuzzer state, a single ASGI process, and
bounded thread pools. Redis and Celery are not installed or started.

Distributed mode keeps Redis-backed Channels and Celery workers:

```bash
pip install 'iotsploit-django[distributed]'
IOTSPLOIT_RUNTIME=distributed celery \
  -A iotsploit_django.tasks.celery_app:app worker --loglevel=info
```

Start workers for the default (`celery`), `interactive`, and `streaming` queues.
Both modes use the same SQLite records as the source of truth; changing modes
requires a process restart and `python manage.py migrate` after upgrades.
All processes in distributed mode must use the same database path. Containers
set `IOTSPLOIT_DATABASE_PATH=/app/data/db.sqlite3` on their shared data volume.

Production settings require `SECRET_KEY`, `ALLOWED_HOSTS`, and
`CORS_ALLOWED_ORIGINS`. The HTTP API has no authentication of its own, so bind
daphne to loopback and put access control in front of it.

