varanus 0.1.0.dev5__tar.gz → 0.1.0.dev6__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.
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/PKG-INFO +1 -1
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/pyproject.toml +1 -1
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/events.py +4 -2
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/management/commands/serve.py +2 -2
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/settings.py +2 -1
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/views/api.py +5 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/runner.py +1 -1
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/utils.py +7 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/README.md +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/apps.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/client.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/context.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/loggers.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/middleware.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/transport/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/transport/base.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/transport/database.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/client/transport/http.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/base.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/fields.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/daterange.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/filter.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/hidden.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/multifacet.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/search.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/utils.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/__main__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/admin.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/apps.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/asgi.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/context_processors.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/integrations/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/integrations/base.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/integrations/squish.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/management/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/management/commands/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/management/commands/migrateall.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/middleware.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/migrations/0001_initial.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/migrations/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/models.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/router.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/static/css/varanus.css +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/static/js/varanus.js +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/tasks.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/base.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/dashboard.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/registration/login.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/base.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/environment_nodes.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/error.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/log.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/metric.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/node_env.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/node_environments.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/node_packages.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/node_settings.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/query.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/request.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/errors.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/logs.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/metrics.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/overview.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/queries.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/requests.html +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templatetags/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templatetags/varanus.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/urls.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/utils.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/views/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/views/base.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/views/dashboard.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/views/site.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/wsgi.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/admin.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/apps.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/backend.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/management/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/management/commands/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/management/commands/tasker.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/migrations/0001_initial.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/migrations/__init__.py +0 -0
- {varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/tasks/models.py +0 -0
|
@@ -4,6 +4,8 @@ from datetime import datetime, timezone
|
|
|
4
4
|
|
|
5
5
|
from msgspec import Struct, field
|
|
6
6
|
|
|
7
|
+
from .utils import safe_repr
|
|
8
|
+
|
|
7
9
|
|
|
8
10
|
def now():
|
|
9
11
|
return datetime.now(tz=timezone.utc)
|
|
@@ -46,7 +48,7 @@ def capture_stack(skip: int = 0, include_locals: bool = False) -> list[StackLine
|
|
|
46
48
|
function=frame.function,
|
|
47
49
|
module=frame.frame.f_globals.get("__name__", ""),
|
|
48
50
|
locals=(
|
|
49
|
-
{name:
|
|
51
|
+
{name: safe_repr(val) for name, val in frame.frame.f_locals.items()}
|
|
50
52
|
if include_locals
|
|
51
53
|
else {}
|
|
52
54
|
),
|
|
@@ -94,7 +96,7 @@ class Error(Event):
|
|
|
94
96
|
function=function,
|
|
95
97
|
module=module,
|
|
96
98
|
linesrc=linesrc,
|
|
97
|
-
locals={name:
|
|
99
|
+
locals={name: safe_repr(val) for name, val in f_locals.items()},
|
|
98
100
|
)
|
|
99
101
|
)
|
|
100
102
|
tb = tb.tb_next
|
|
@@ -47,8 +47,8 @@ class Command(BaseCommand):
|
|
|
47
47
|
self.runner = Runner(workers=workers)
|
|
48
48
|
|
|
49
49
|
server = Granian(
|
|
50
|
-
"
|
|
51
|
-
address="
|
|
50
|
+
":".join(settings.WSGI_APPLICATION.rsplit(".", 1)),
|
|
51
|
+
address="0.0.0.0",
|
|
52
52
|
port=9000,
|
|
53
53
|
interface=Interfaces.WSGI,
|
|
54
54
|
workers=options["workers"],
|
|
@@ -97,10 +97,11 @@ TEMPLATES = [
|
|
|
97
97
|
|
|
98
98
|
WSGI_APPLICATION = "varanus.server.wsgi.application"
|
|
99
99
|
|
|
100
|
+
# https://forum.djangoproject.com/t/sqlite-and-database-is-locked-error/26994
|
|
100
101
|
DATABASES = {
|
|
101
102
|
"default": config(
|
|
102
103
|
"DATABASE_URL",
|
|
103
|
-
f"sqlite:///{DATA_DIR}/db.sqlite3",
|
|
104
|
+
f"sqlite:///{DATA_DIR}/db.sqlite3?transaction_mode=IMMEDIATE",
|
|
104
105
|
cast=DatabaseDict(ATOMIC_REQUESTS=True, TEST={"MIGRATE": False}),
|
|
105
106
|
),
|
|
106
107
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
1
3
|
import msgspec
|
|
2
4
|
from django.http import HttpRequest, HttpResponseBase, JsonResponse
|
|
3
5
|
from django.views.decorators.csrf import csrf_exempt
|
|
@@ -8,6 +10,8 @@ from varanus import events
|
|
|
8
10
|
from ..models import Node, Site, SiteKey
|
|
9
11
|
from ..tasks import ingest
|
|
10
12
|
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
11
15
|
|
|
12
16
|
class APIView(View):
|
|
13
17
|
key: SiteKey
|
|
@@ -33,6 +37,7 @@ class APIView(View):
|
|
|
33
37
|
except SiteKey.DoesNotExist:
|
|
34
38
|
return JsonResponse({"error": "Invalid site key."}, status=401)
|
|
35
39
|
except Exception as e:
|
|
40
|
+
logger.exception("Bad API request")
|
|
36
41
|
return JsonResponse({"error": str(e)}, status=400)
|
|
37
42
|
|
|
38
43
|
|
|
@@ -19,3 +19,10 @@ def make_fingerprint(parts: Iterable) -> str:
|
|
|
19
19
|
return hashlib.sha256(
|
|
20
20
|
":".join(str(p).strip().lower() for p in parts if p).encode("utf-8")
|
|
21
21
|
).hexdigest()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def safe_repr(obj, max_length: int = 1024) -> str:
|
|
25
|
+
r = repr(obj)
|
|
26
|
+
if len(r) > max_length:
|
|
27
|
+
r = r[: max_length - 1] + "…"
|
|
28
|
+
return r
|
|
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
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/daterange.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/search/templates/search/multifacet.html
RENAMED
|
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
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/management/commands/__init__.py
RENAMED
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/management/commands/migrateall.py
RENAMED
|
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
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/registration/login.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/error.html
RENAMED
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/log.html
RENAMED
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/metric.html
RENAMED
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/node_env.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/query.html
RENAMED
|
File without changes
|
{varanus-0.1.0.dev5 → varanus-0.1.0.dev6}/src/varanus/server/templates/site/details/request.html
RENAMED
|
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
|