rust-py-audit 0.2.3__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/Cargo.lock +1 -1
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/Cargo.toml +1 -1
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/PKG-INFO +2 -1
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/README.md +1 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/pyproject.toml +1 -1
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/python/rust_py_audit/__init__.py +1 -1
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/.github/workflows/release.yml +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/.gitignore +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/LICENSE +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/__init__.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/basic_usage.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/django_example/__init__.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/django_example/settings.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/django_example/urls.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/django_example/views.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/fastapi_app.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/examples/immutablelog_basic.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/python/rust_py_audit/django.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/python/rust_py_audit/fastapi.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/audit_logger.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/errors.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/event.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/hash.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/immutablelog_client.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/immutablelog_config.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/immutablelog_receipt.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/lib.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/pyconv.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/retry.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/storage.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/src/verifier.rs +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/conftest.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_audit_logger.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_concurrency.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_django_immutablelog.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_django_middleware.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_fastapi_immutablelog.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_fastapi_middleware.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_flush_pending.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_hello.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_immutablelog_hybrid.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_immutablelog_remote.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_metadata_bigint.py +0 -0
- {rust_py_audit-0.2.3 → rust_py_audit-0.2.4}/tests/test_verify.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rust-py-audit
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -55,6 +55,7 @@ Records audit events (`who did what, when, on which resource`) in a fast, struct
|
|
|
55
55
|
- **`AuditLogger`** — simple API: `log(...)`, `verify()`, `last_hash()`
|
|
56
56
|
- **Hash chain (SHA-256)** — each event embeds the hash of the previous event; altering any recorded event breaks the chain in a detectable way
|
|
57
57
|
- **JSONL storage** — one event per line, append-only, no database required
|
|
58
|
+
- **Thread-safe** — a single `AuditLogger` can be shared across threads (e.g. a multi-threaded WSGI server, or one middleware instance serving concurrent requests); the hash chain stays linear under concurrency
|
|
58
59
|
- **Free-form `metadata`** — any JSON-serializable `dict` (IP, reason, request_id, etc.)
|
|
59
60
|
- **FastAPI middleware** — automatically logs state-changing requests (POST/PUT/PATCH/DELETE)
|
|
60
61
|
- **Django middleware** — same idea, supports WSGI and ASGI
|
|
@@ -18,6 +18,7 @@ Records audit events (`who did what, when, on which resource`) in a fast, struct
|
|
|
18
18
|
- **`AuditLogger`** — simple API: `log(...)`, `verify()`, `last_hash()`
|
|
19
19
|
- **Hash chain (SHA-256)** — each event embeds the hash of the previous event; altering any recorded event breaks the chain in a detectable way
|
|
20
20
|
- **JSONL storage** — one event per line, append-only, no database required
|
|
21
|
+
- **Thread-safe** — a single `AuditLogger` can be shared across threads (e.g. a multi-threaded WSGI server, or one middleware instance serving concurrent requests); the hash chain stays linear under concurrency
|
|
21
22
|
- **Free-form `metadata`** — any JSON-serializable `dict` (IP, reason, request_id, etc.)
|
|
22
23
|
- **FastAPI middleware** — automatically logs state-changing requests (POST/PUT/PATCH/DELETE)
|
|
23
24
|
- **Django middleware** — same idea, supports WSGI and ASGI
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|