Harden worker queue and restore drill defaults
Dependency Audit / dependency-audit (push) Successful in 2m23s
Deployment Installer / deployment-installer (push) Successful in 6s
Security Audit / security-audit (push) Successful in 10m22s

This commit is contained in:
2026-07-31 22:48:06 +02:00
parent efd734fad2
commit 3c658fa32d
3 changed files with 30 additions and 5 deletions
@@ -14,6 +14,7 @@ import sys
import tempfile
from collections.abc import Callable, Iterable
from contextlib import contextmanager
from datetime import UTC, datetime
from pathlib import Path
from types import SimpleNamespace
from typing import Any
@@ -65,6 +66,11 @@ def main() -> int:
parser.add_argument("--runtime-root", type=Path, help="Directory for temporary drill runtimes. Defaults to a new temp directory.")
parser.add_argument("--keep-runtime", action="store_true", help="Keep the temporary drill runtime after completion.")
parser.add_argument("--format", choices=("json", "text"), default="text", help="Output format.")
parser.add_argument(
"--evidence-path",
type=Path,
help="Write an atomic machine-readable drill result for the Ops health surface.",
)
args = parser.parse_args()
runtime_root = args.runtime_root or Path(tempfile.mkdtemp(prefix="govoplan-installer-drill-"))
@@ -88,7 +94,14 @@ def main() -> int:
if not args.keep_runtime and args.runtime_root is None:
shutil.rmtree(runtime_root, ignore_errors=True)
payload = {"ok": ok, "runtime_root": str(runtime_root), "scenarios": results}
payload = {
"ok": ok,
"completed_at": datetime.now(tz=UTC).isoformat(),
"runtime_root": str(runtime_root),
"scenarios": results,
}
if args.evidence_path:
_write_evidence(args.evidence_path, payload)
if args.format == "json":
print(json.dumps(payload, indent=2, sort_keys=True))
else:
@@ -105,6 +118,18 @@ def main() -> int:
return 0 if ok else 1
def _write_evidence(path: Path, payload: dict[str, object]) -> None:
path = path.expanduser()
path.parent.mkdir(parents=True, exist_ok=True)
temporary = path.with_suffix(path.suffix + ".tmp")
temporary.write_text(
json.dumps(payload, indent=2, sort_keys=True) + "\n",
encoding="utf-8",
)
temporary.chmod(0o600)
temporary.replace(path)
def package_failure(root: Path) -> dict[str, object]:
database_url, database = _sqlite_database(root)
plan = _saved_install_plan(database, "package-failure-example")
+3 -3
View File
@@ -172,7 +172,7 @@ def reconcile_runtime_environment(
"ENABLED_MODULES": ",".join(spec.enabled_modules),
"CELERY_ENABLED": "true" if redis.mode != "disabled" else "false",
"CELERY_QUEUES": (
"send_email,append_sent,notifications,calendar,dataflow,workflow,events,default"
"send_email,append_sent,notifications,mail,calendar,dataflow,workflow,postbox,events,idm,default"
),
"CORS_ORIGINS": spec.public_url,
"GOVOPLAN_TRUSTED_HOSTS": public.hostname or "",
@@ -465,8 +465,8 @@ def render_compose(spec: InstallationSpec) -> dict[str, object]:
"worker",
"--queues",
(
"send_email,append_sent,notifications,calendar,"
"dataflow,events,default"
"send_email,append_sent,notifications,mail,calendar,"
"dataflow,workflow,postbox,events,idm,default"
),
"--loglevel",
"INFO",
+1 -1
View File
@@ -56,7 +56,7 @@ export DATABASE_URL="${DATABASE_URL:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL:-po
export GOVOPLAN_DATABASE_URL_PGTOOLS="${GOVOPLAN_DATABASE_URL_PGTOOLS:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL_PGTOOLS:-postgresql://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
export REDIS_URL="${REDIS_URL:-${GOVOPLAN_PRODUCTION_LIKE_REDIS_URL:-redis://127.0.0.1:56379/0}}"
export CELERY_ENABLED="${CELERY_ENABLED:-true}"
export CELERY_QUEUES="${CELERY_QUEUES:-send_email,append_sent,notifications,calendar,workflow,default}"
export CELERY_QUEUES="${CELERY_QUEUES:-send_email,append_sent,notifications,mail,calendar,dataflow,workflow,postbox,events,idm,default}"
export FILE_STORAGE_BACKEND="${FILE_STORAGE_BACKEND:-local}"
export FILE_STORAGE_LOCAL_ROOT="${FILE_STORAGE_LOCAL_ROOT:-$META_ROOT/runtime/production-like/files}"
export DEV_AUTO_MIGRATE_ENABLED="${DEV_AUTO_MIGRATE_ENABLED:-false}"