openvibers/openvibe.events Commits

nginx: /realtime/stream is logged without its query string (log_format ov_events_noquery in conf.d), so the single-use ?ticket= never reaches the access log; installed on the host

OP OpenVibers committed 26 Sept 2026 · 52e1615aa4 · 2 files, +5 −0


Changes

ddiff --git a/deploy/nginx/events.openvibe.network.conf b/deploy/nginx/events.openvibe.network.conf
iindex c7d1194..2ec6c3e 100644
---- a/deploy/nginx/events.openvibe.network.conf
++++ b/deploy/nginx/events.openvibe.network.conf
@@@ -53,6 +53,7 @@ server {
# The service sends a heartbeat comment every 25 s, well inside these timeouts and
# Cloudflare's 100 s idle limit. CORS is answered by the service (https://*.openvibe.* only).
location = /realtime/stream {
++ access_log /var/log/nginx/events.openvibe.network.access.log ov_events_noquery; # never the ?ticket= (log_format_events_noquery.conf)
limit_req zone=ovevents_connect burst=20 nodelay;
limit_conn ovevents_streams 20;
proxy_pass http://127.0.0.1:4300;
ddiff --git a/deploy/nginx/log_format_events_noquery.conf b/deploy/nginx/log_format_events_noquery.conf
nnew file mode 100644
iindex 0000000..3a2918e
---- /dev/null
++++ b/deploy/nginx/log_format_events_noquery.conf
@@@ -0,0 +1,4 @@
++# Install as /etc/nginx/conf.d/log_format_events_noquery.conf (conf.d loads before the vhosts).
++# Access log lines without the query string for /realtime/stream: its ?ticket= is a single-use realtime
++# ticket (ADR-005 amendment 2). Live keeps its own ov_noquery for its WebSocket URLs.
++log_format ov_events_noquery '$remote_addr - $remote_user [$time_local] "$request_method $uri $server_protocol" $status $body_bytes_sent "$http_referer" "$http_user_agent" cf_ray=$http_cf_ray';